一.填空题
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;
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
this.grade = 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){
return 0;
} else if (n == 2 || n == 3) {
return 1;
} 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个数的数值。