尚学堂java实战第四章课后习题
文章中的题目答案仅供参考
选择题答案:
1.B
解析:一个java类必然存在构造器,即使没有定义构造器,也会存在一个默认的无参构造器。
2.D
3.AC
解析:
A(静态方法中应该通过对象实例化来调用非静态方法)
B(非静态方法可以直接调用静态方法)
D(静态方法不可以使用this的原因在于静态方法是通过类调用的方法,不需要实例化,就没有当前的对象,没有实例化对象没就不会有this)
4.AC
解析:
A(在类方法中不可以使用this关键字调用本类的方法)
C(在类方法中还可以通过对象.实例方法调用实例方法)
5.C
解答题
1.面向过程思想和面向对象的思想的区别?
解答:面向对象的具有三大特点,继承性、封装性、多态性。面向过程没有继承性和多态性。并且面向过程的封装只是封装,但是面向对象的封装可以封装数据和功能。解决复杂的吻戏面向对象是出于宏观上来解决问题,但是微观上依旧是面向过程。
2.类和对象的关系?
解答:对象是具体的事物,类是对对象的抽象;类可以看做是一类对象的模板,对象可以看做是类的一个具体实例;类用于描述同一类型对象的一个抽象概念,类中定义了这一类对象所应具有的共同属性和方法。
3.构造器的特征和作用
解答:构造器的特征:名称和类的名称一致。作用:在实例化对象初始化的时候调用相应的构造器,返回相应的对象。
4.this关键字的用法和作用
解答:this关键字可以节约很多不必要的代码,使用方法就是this.属性/方法。
(一)调用当前的属性
(二)调用构造方法
(三)调用当前的方法
5.简述static关键字的作用,从修饰变量、方法、代码块三个区域回答。
解答:static修饰的变量是该类的功用变量,被所有实例进行共享;对于该类的所有对象来说,static成员变量只有一份。类方法中不可以直接调用实例方法,也不可以使用this关键字。Java静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用。
编码题
1.
package cn.istell.packge.practice;
//第四章的编码题,编写一个person类,并且是私有属性的age和name,含有构造
//方法,并且进行总体的输出。
public class person {
private int age;
private String name;
public person(int age,String name)
{
this.age=age;
this.name=name;
}
public void display()
{
System.out.println("age="+age+",name="+name);
}
public static void main(String args[])
{
person p = new person(10,"谭子成");
p.display();
}
}
2
package cn.istell.packge.practice;
//定义一个circle类,存在一个属性r,代表半径,该类含有方法可以可以计算面积和周长;
//通过另外一个类来进行数据的测试
public class Cricle {
int r;
double pai=3.1415;
public double getArea(int r)
{
return 1.0*r*r*pai;
}
public double getPerimeter(int r){
return 2*pai*1.0*r;
}
}
package cn.istell.packge.practice;
public class TryCricle {
public static void main(String args[]){
Cricle c = new Cricle();
System.out.println(c.getArea(1));
System.out.println(c.getPerimeter(1));
}
}
3
package cn.istell.packge.practice;
public class Internet {
String e_mail;
String id;
int password;
public Internet(String id,int password){
this.id=id;
this.password=password;
e_mail=id+"@gameschool.com";
}
public static void main(String args[]){
Internet i = new Internet("2019",20);
System.out.println(i.e_mail);
}
}