Java 期中测试

1.下列说法正确的有()
A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor
2. Java接口的修饰符可以为() A private     B protected     C final       D abstract
3. 下面代码的运行结果为:()
public class foo{
public static void main (String[] args){
String s; System.out.println(“s=” + s);
}
}A 代码得到编译,并输出“s=” B 代码得到编译,并输出“s=null”
C 由于String s没有初始化, 代码不能编译通过 D 代码得到编译,但捕获到 NullPointException异常
4. System.out.println(“5” + 2);的输出结果应该是()。 A 52                   B7                     C2                     D5
5. 指出下列程序运行的结果 ()
public class Example {
String str = new String(“good”);
char[] ch = { ‘a’, ‘b’, ‘c’ };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public void change(String str, char ch[]) {
str = “test ok”; ch[0] = ‘g’;
}
}A、 good and abc B、 good and gbc C、 test ok and abc D、 test ok and gbc 
6. 下面的方法,当输入为2的时候返回值是多少?()
public static int getValue(int i) {
int result = 0;
switch (i) {
case 1: result = result + i;
case 2: result = result + i * 2;
case 3: result = result + i * 3;
}
return result;
}A0                    B2                    C4                     D10
7.下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child(“mike”)的时候都有哪些构造方法被顺序调用?请选择输出结果 ( )
class People {
String name;
public People() {
System.out.print(1);
}
public People(String name) {
System.out.print(2);
this.name = name;
}
}
class Child extends People {
People father;
public Child(String name) {
System.out.print(3);
this.name = name;
father = new People(name + “:F”);
}
public Child() {
System.out.print(4);
}
}A312              B 32               C 432              D 132
8. 以下代码运行输出是( )
public class Person{
private String name=”Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child(); System.out.println(p.name);
}
}A 输出:Person B 没有输出 C 编译出错 D 运行出错
9. 在使用super 和this关键字时,以下描述正确的是( )
A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B super()和this()不一定要放在构造方法内第一行
C this()和super()可以同时出现在一个构造函数中
D this()和super()可以在static环境中使用,包括static方法和static语句块
10. 以下关于final关键字说法错误的是(A,C)(两项)
A final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性 B final修饰的类肯定不能被继承
C final修饰的方法不能被重载 D final修饰的变量不允许被再次赋值
11. 仔细阅读下面的程序代码,请将划线上①~⑤的语句补充完整。
abstract class Person{
private String name;
    public Person(String n){  name = n;  }
    public _①abstract String getDescription();
    public __②String toName (){ return name; }
}
  class Student ___③ extends Person{
private String major;
    public Student(String n, String m){
     super(n);  major = m;
    }
    public String __④getDescription (){ return “学生专业是:” + major;  }
  }
public class TestPerson{
      public static void main(__String args[]__⑤){
        Person p = new Student(“王甜甜”, “计算机科学”);
        System.out.println(p.getName() + ", "+ p.getDescription());
      }
   }
12. 存在使i + 1 < i的数吗? 0.6332的数据类型是? 不通过构造函数也能创建对象吗?abstract 可以修饰变量?构造方法不能重载,可以重写?
存在,如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时<i了。
double
能,Java创建对象的几种方式(重要):
用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法。
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
不能
构造方法能够被重载,不能被重写。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想去见见你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值