4、类中static修饰的变量或方法,可以使用类名或对象的引用变量访问。对 5、方法内部类中不能访问外部类的成员变量。错 三、选择题
1、类的定义必须包含在以下哪种符号之间?B
A、方括号[] B、花括号{} C、双引号“” D、圆括号() 2、下面哪一个是正确的类的声明? D A、 public void HH{…}
B、 public class Move(){…}
C、 public class void number{} D、 public class Car{…}
3、在以下什么情况下,构造方法会被调用?B
A、 类定义时 B、 创建对象时 C、 调用对象方法时 D、 使用对象的变量时 4、下面对于构造方法的描述,正确有哪些?(多选)ABC A、方法名必须和类名相同
B、方法名的前面没有返回值类型的声明 C、在方法中不能使用return语句返回一个值
D、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在 5、使用this调用类的构造方法,下面的说法正确的是?(多选)ACD(ABCD) A、使用this调用构造方法的格式为this([参数1,参数2…]) B、只能在构造方法中使用this调用其它的构造方法 C、使用this调用其它构造方法的语句必须放在第一行 D、不能在一个类的两个构造方法中使用this互相调用 6、下面哪些可以使用static关键字修饰?(多选)AC(ACD)
A、 成员变量 B、局部变量 C、成员方法 D、成员内部类
7、关于内部类,下面说法正确的是?(多选)ACD(ABCD)
A、成员内部类是外部类的一个成员,可以访问外部类的其它成员 B、外部类可以访问成员内部类的成员
C、方法内部类只能在其定义的当前方法中进行实例化 D、静态内部类中可以定义静态成员,也可以定义非静态成员 8、下面对于单例设计模式的描述,正确的是?(多选)BCD(ABCD) A、类中定义一个无参的构造方法,并且声明为私有
B、在内部创建一个该类的实例对象,使用静态变量引用该实例对象 C、使用private修饰静态变量,禁止外界直接访问 D、定义静态方法返回该类实例 9、请先阅读下面的代码D
public class Test { public Test(){
System.out.println(\构造方法一被调用了\ }
public Test(int x){ this();
System.out.println(\构造方法二被调用了\ }
public Test(boolean b){ this(1);
System.out.println(\构造方法三被调用了\ }
public static void main(String[] args) { }
}
Test test = new Test(true);
上面程序的运行结果为下列哪一项? A、构造方法一被调用了 C、构造方法三被调用了
B、构造方法二被调用了 D、以上三个选项之和
10、Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的?D
A、 Inner in = new Inner()
B、Inner in = new Outer.Inner();
C、 Outer.Inner in = new Outer.Inner(); D、Outer.Inner in = new Outer().new Inner(); 四、程序分析题
阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。
代码一:不能,secret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问)
class A { }
public class Test1 { }
public static void main(String[] args) { }
A a = new A();
System.out.println(a.secret++); private int secret = 5;
代码二:250(程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。)
public class Test2 { }
int x = 50;
static int y =200 ;
public static void method() { }
public static void main(String[] args) { }
Test2.method();
System.out.println(x+y);
代码三:Inner为私有内部类,不允许外部访问(inner)Inner inner = new Outer().new Inner();可以用外部类访问内部类
public class Outer {
}
public String name=\private class Inner { }
public static void main(String[] args) { }
Inner inner = new Outer().new Inner(); System.out.println(inner.name); String name=\void showName(){ }
System.out.println(name);
五、简答题
1、构造方法和普通的成员方法有什么区别?
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值
2、单例设计模式具备哪些特点?
单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。
六、编程题
1、请按照以下要求设计一个学生类Student,并进行测试。 要求如下:
1)Student类中包含姓名、成绩两个属性
2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.
3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值