1. 下列关于 构造函数 的描述中,错误的是()
A、构造函数可以设置默认的参数
B、构造函数在定义类对象时自动执行
C、构造函数可以是内联函数
D、构造函数不可以 重载
分析:
构造函数( 构造方法 )是可以重载的,以个数、类型、顺序,所以D不正确
关键字final来指明那个函数是内联的。在所有类说明中内部定义的成员函数都是内联函数。
2. 下列说法正确的有()
A、class中的 constructor 不可省略
B、constructor必须与class同名,但方法不能与class同名
C、constructor在一个对象被new时执行
D、一个class只能定义一个constructor
分析:
A中一个类中的构造方法是不能省略的。如果没有自定义的构造方法,系统会自动添加一个无参的构造方法。
B中一个类中方法的方法名是可以和类名相同的。
D中一个类可以有多个构造方法,即方法的重载。
所以选C
3. 已知如下定义:String s = “story”; 下面哪个表达式是合法的?
A、s += “books”;
B、char c = s[1];
C、int len = s.length;
D、String t = 100;
分析:
B:String类型的变量是 字符串 ,不能用下标s[ ]表示。
C:String类没有length属性,有length()方法。
D:字符串类型应该用双引号””括起来。
所以选A
4. 关于java.lang.String类,以下描述正确的一项是()
A、String类是final类故不可以继承
B、String类是final类故可以继承
C、String类不是final类故不可以继承
D、String类不是final类故可以继承
分析:
在java. lang包中,String类的定义为:
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
所有String类是final类;而final修饰的类是不可以被继承的。
所以选A
5. 指出下列程序运行的结果()
A、good and abc
B、good and gbc
C、test ok and abc
D、test ok and gbc
分析:
String不能被改变,没有返回值,所以最终str = “good”; 而ch数组不是,值可以改变,所以ch = {‘g’, ‘b’, ‘c’}。
所以选B
二、简答题(this()与super())
super()与this()的区别?
this:指代对象本身,是指向本对象的一个指针;只能用在非 静态方法 的方法体中。
用法:
(1)一个类明确调用自己的属性和方法时,使用 this.属性名和this.方法名(通常this会省略)。
(2)一个构造方法调用本类的其他构造方法时,使用 this(参数),且必须放在第一行。
(3) 局部变量 与 全局变量 重名时,使用this标记全局变量。
super:指父类,是Java的一个关键字。super只能用在非静态方法的方法体中;且不能与this同时出现在一个构造方法中。
用法:
(1)子类调用父类的构造方法,使用 super. ( [参数] ),且必须放在第一行。
(2)子类调用父类的变量和方法,使用 super. 变量名 和super. 方法名([参数])。
请用程序实现 冒泡排序 算法。
代码编写: