第九章 构造方法
笔试题
一、填空题
1. 【基础题】构造方法 能 ( 能或者不能)被public、private、protected修饰
二、选择题
1. 【基础题】下列说法正确的有( C)
A. 类中的构造函数不可省略
B. 构造函数必须与class同名,但方法不能与class同名
C. 构造函数在一个对象被new时执行
D. 一个class只能定义一个构造函数
2. 【中等题】下面哪个关键字可以用在构造方法中? ( E)
A. final
B. static
C. synchronized
D. native
E. 都不行
(解析:构造方法不能被子类继承,所以用final修饰没有意义。构造方法用于创建一个新的对象,不能作为类的静态方法,所以用static修饰没有意义。此外,Java语言不支持native或synchronized的构造方法。)
三、名词解释
1. 【基础题】constructor: 构造器
四、问答题
1. 【基础题】构造方法必须满足哪些条件?
答:
方法名必须与类名称完全相匹配;
不要声明返回类型;
不能被static、final、synchronized、abstract、native修饰。
第十章 变量的生命周期、作用域、参数传递
笔试题
一、填空题
1. 【基础题】Java中的静态声明包括 变量 方法 和 块
2. 【基础题】final类可以修饰在 类 , 属性 和 方法 前面
3. 【基础题】Java的访问控制有四种: private 、 protected、 public 、 默认
4. 【基础题】封装一个类通常将属性设为 private ,如果属性名称为speed,该属性的setter方法的应该写成 public void setSpeed(String speed).。
二、选择题
1. 【基础题】下面那个是用声明静态方法的关键字 (D)
A. String
B. switch
C. final
D. static
2. 【基础题】那个可以作为方法的参数传递 (A、B、C)
A. 基本数据类型
B. 数组
C. 类实例化的对象
D. 常量
三、名词解释
四、问答题
1. 【中等题】简述final, finally, finalize的含义
答:
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
2. 【中等题】当类被加载时,请简述一下类中的静态声明执行顺序
答:
首先初始化静态属性值
然后执行静态块
最后执行类加载时的构造函数
3. 【中等题】简述final和finalize的区别
答:
1) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。
2) 将变量或方法声明为final,可以保证它们在使用中不被改变。
3) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
4) 被声明为final的方法也同样只能使用,不能重载。 finalize()方法名,不是关键字,它在Object中定义的。Java技术允许使用 finalize是方法名;在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
4. 【中等题】Java语言里,一个类中静态变量与非静态变量有什么区别?
答:
静态变量或方法, 就是以static修饰的变量或方法, 如static int count; 它的意义是让系统分配一个静态空间给这个变量count, 那么包含这个变量的类的全部实例就会共用这个变量, 任何一个改变了count都会对其余的实例产生影响, 它是在文件编绎时就被初始化的, 比一切其它non-static 变量都要早;
而non-static 变量就是每一个类实例都有自己的count, 任何实例的改变都不会影响到其它的实例的count(也就是分配了各自的空间), 它们是第一次使用的时候才被初始化的
5. 【中等题】当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:
是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。