《Java基础⼊门第2版》--⿊马程序员课后答案及其详解第3章⾯向对象(上)⽂章⽬录
⼀.填空题
1、封装、继承、多态
2、this
3、private、default、protected、public
4、静态变量
5、private
⼆.判断题
1、对
2、对
3、错
4、对
5、错
三.选择题
1、D
2、ABC
3、A
4、BC
5、BD
四.简答题
1、构造⽅法是类的⼀个特殊成员,它会在类实例化对象时被⾃动调⽤。⽽普通⽅法只有在使⽤的时候才会被调⽤。在定义构造⽅法时要求⽅法名与类名相同、在⽅法名的前⾯没有返回值类型的声明、在⽅法中不能使⽤return语句返回⼀个值。
2、(1)⽅法名与类名相同;(2)在⽅法名的前⾯没有返回值类型的声明;(3)在⽅法中不能使⽤return语句返回⼀个值,但是可以单独写return语句来作为⽅法的结束。
3、Java⾯向对象有三⼤特性,封装是将对象的属性和⾏为封装起来,不需要让外界知道具体实现细节;继承是可以在⽆需重新编写原有类的情况下,对原有类的功能进⾏扩展;多态指的是在⼀个类中定义的属性和功能被其他类继承后,当把⼦类对象直接赋值给⽗类引⽤变量时,相同引⽤类型的变量调⽤同⼀个⽅法所呈现出的多种不同⾏为特性。
五.编程题
1.class Student {
private String name;
private double grade;
public Student(){
}
public Student(String name,double grade){ this.name = name;
}
public String getName(){
return name;
}
public void setName(String name){
实例化类和实例化对象this.name = name;
}
public double getGrade(){
return grade;
}
public void setGrade(double grade){
}
}
public class Test01 {
public static void main(String[] args){
Student stu1 =new Student();
stu1.setName("zhangsan");
stu1.setGrade(99);
Student stu2 =new Student("lisi",100);
}
}
2.public class Test {
public static void main(String[] args){
int n =8;
int num =getNum(n);
System.out.println("第"+n+"个数的数值是:"+num); }
public static int getNum(int n){
if(n ==1){
return0;
}else if(n ==2|| n ==3){
return1;
}else{
return getNum(n -1)+getNum(n -2);
}
}
}
六.原题及其解析
⼀.填空题
1.⾯向对象的三⼤特征是( )、( )和( )
2.在⾮静态成员⽅法中,可以使⽤关键字( )访问类的其他⾮静态成员
3.在Java中,针对类、成员⽅法和属性提供了四种访问级别,分别是( )、( )、( )和( )
4.被static关键字修饰的成员变量被称为( ),它可以被该类所有的实例对象共享。
5.所谓类的封装是指在定义⼀个类时,将类中的属性私有化,即使⽤( )关键字来修饰。
⼆.判断题
1.在定义⼀个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。()
2.Java中的每个类都⾄少有⼀个构造⽅法,⼀个类中如果没有定义构造⽅法,系统会⾃动为这个类创建⼀个默认的构造⽅法。()
3.声明构造⽅法时,不能使⽤private关键字修饰。()错×
4.类中static修饰的变量或⽅法,可以使⽤类名或对象的引⽤变量访问。()
5.静态代码块会随着类对象的创建⽽执⾏。()
三.选择题
1.下⾯哪⼀个是正确的类的声明?()
A.public void HH{…}
B.public class Move(){…}
C.public class void number{.}
D.public class Car{…}
2.下⾯对于构造⽅法的描述,正确的有哪些?(多选)()
A.⽅法名必须和类名相同
B.⽅法名的前⾯没有返回值类型的声明
C.在⽅法中不能使⽤return语句返回⼀个值
D.当定义了带参数的构造⽅法,系统默认的不带参数的构造⽅法依然存在
3.在Java中,针对类和提供了4种访问级别,以下控制级别由⼩到⼤依次列出正确的是()
A.private、default、protected和public
B.default、private、protected和public
C.protected、default、private和public
D.protected、private、default和public
4.请先阅读下⾯的代码
public class Test{
public Test(){
System.out.println("构造⽅法⼀被调⽤了");
}
public Test(int x){
System.out.println("构造⽅法⼆被调⽤了");
}
public Test(boolean b){
this(1);
System.out.println("构造⽅法三被调⽤了");
}
public static void main(String[]args){
Test test =new Test(true);
}
}
上⾯程序的运⾏结果为下列哪⼀项?()
A.构造⽅法⼀被调⽤了
B.构造⽅法⼆被调⽤了
C.构造⽅法三被调⽤了
D.以上三个选项之和
5.以下关于static关键字的说法正确的是?(多选)()
A.static关键字可以修饰类
B.static关键字可以修饰成员
C.static关键字可以修饰所有的变量
D.static关键字可以修饰代码块
四.简答题
1.简述构造⽅法和普通的成员⽅法有什么区别
2.简述Java中构造⽅法须同时满⾜的条件
3.简述Java⾯向对象特性。
五.编程题
1.请按照以下要求设计⼀个学⽣类Student,并进⾏测试。要求如下:
(1)Student类中包含姓名、成绩两个属性。
(2)分别给这两个属性定义两个⽅法,⼀个⽅法⽤于设置值,另⼀个⽅法⽤于获取值。
(3)Student类中定义⼀个⽆参的构造⽅法和⼀个接收两个参数的构造⽅法,两个参数分别为姓名和成绩属性赋值。
(4)在测试类中创建两个Student对象,⼀个使⽤⽆参的构造⽅法,然后调⽤⽅法给姓名和成绩赋值,另⼀个使⽤有参的构造⽅法,在构造⽅法中给姓名和成绩赋值。
2.定义⼀个这样的数列:0,1,1,2,3,5,…(斐波那契数列)。要求如下:
使⽤递归⽅法获取第n个数的数值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。