第六章 static、final和常量设计

第六章 static和final测验

1、单选题:
​下面关于变量及其范围的陈述哪些是错误的‏
选项:
A: 实例变量是类的成员变量
B: 实例变量用关键字static声明
C: 在方法中定义的局部变量在该方法被执行时创建
D: 局部变量在使用前必须被初始化
答案: 【 实例变量用关键字static声明

2、单选题:
​下列说法错误的是​
选项:
A: 声明为static的方法可以被重写
B: 声明为static的方法不可以调用非static变量
C: 声明为final的方法可以被重写
D: 声明为final的类不可以被继承
答案: 【 声明为final的方法可以被重写

3、单选题:
‎以下代码‌‎class FinalTest{‌‎  int num = 1;‌‎‌‎  public static void main(String[] args) {‌‎    final FinalTest ft = new FinalTest();//1‌‎    ft.num = 100;//2‌‎    //3‌‎    System.out.println(ft.num);//4‌‎  }‌‎}‌
选项:
A: 编译通过,但在//3处加上 ft.num ++; 后编译报错
B: 编译通过,但在//3处加上 ft = new FinalTest();; 后编译报错
C: 编译不通过,去除//1中的 final 后编译通过
D: 编译不通过,删除//2 整行后编译通过
答案: 【 编译通过,但在//3处加上 ft = new FinalTest();; 后编译报错

4、单选题:
‌下列代码执行结果是​‌class NumTest{​‌  static int id = 1;​‌  int id2 = 1;​‌​‌  NumTest(int id,int id2){​‌    this.id = id;​‌    this.id2 = id2;​‌  }​‌​‌  void printId(){​‌    System.out.print(id+id2+" ");​‌  }​‌​‌  public static void main(String[] args) {​‌    NumTest a = new NumTest(1,2);​‌    NumTest b = new NumTest(2,1);​‌    NumTest c = new NumTest(0,0);​‌    a.printId();​‌    b.printId();​‌    c.printId();​‌  }​‌}​
选项:
A: 3 3 0
B: 1 2 0
C: 2 1 0
D: 编译报错
答案: 【 2 1 0

5、单选题:
‎以下代码‌‎class FinalTest{‌‎  final int num = 1;‌‎‌‎  public static void main(String[] args) {‌‎    final FinalTest ft = new FinalTest();//1‌‎    ft.num = 100;//2‌‎    //3‌‎    System.out.println(ft.num);//4‌‎  }‌‎}‌
选项:
A: 编译通过,但在//3处加上 ft.num ++; 后编译报错
B: 编译通过,但在//3处加上 ft = new FinalTest(); 后编译报错
C: 编译不通过,去除//1的 final 后编译通过
D: 编译不通过,删除//2 整行后编译通过
答案: 【 编译不通过,删除//2 整行后编译通过

6、单选题:
​class NumTest{‎​  final int id = 1;‎​  int id2 = 1;‎​‎​  NumTest(int id,int id2){‎​    this.id = id;‎​    this.id2 = id2;‎​  }‎​‎​  void printId(){‎​    System.out.print(id+id2+" ");‎​  }‎​‎​  public static void main(String[] args) {‎​    NumTest a = new NumTest(1,2);‎​    NumTest b = new NumTest(2,1);‎​    NumTest c = new NumTest(0,0);‎​    a.printId();‎​    b.printId();‎​    c.printId();‎​  }‎​}‎
选项:
A: 3 3 0
B: 1 2 0
C: 2 1 0
D: 编译报错
答案: 【 编译报错

7、单选题:
‍下列代码执行结果是‌‍ class NumTest{‌‍  final static int num1 = 1;‌‍  static int num2 = 1;‌‍‌‍  void printNum1(){‌‍    System.out.print(num1+" ");‌‍  }‌‍‌‍  void printNum2(){‌‍    System.out.print(num2+" ");‌‍  }‌‍‌‍  public static void main(String[] args) {‌‍    NumTest a = new NumTest();‌‍    a.num2 ++;‌‍    a.printNum1();‌‍    NumTest b = new NumTest();‌‍    b.printNum2();‌‍ }‌‍}‌
选项:
A: 1 1
B: 1 2
C: 2 2
D: 编译报错
答案: 【 1 2

8、单选题:
‎下列代码执行结果是‎‎class NumTest{‎‎  final static int num1 = 1;‎‎  static int num2 = 1;‎‎‎‎  void printNum1(){‎‎    System.out.print(num1+" ");‎‎  }‎‎‎‎  void printNum2(){‎‎    System.out.print(num2+" ");‎‎  }‎‎‎‎  public static void main(String[] args) {‎‎    NumTest a = new NumTest();‎‎    a.num1 ++;‎‎    a.printNum2();‎‎    NumTest b = new NumTest();‎‎    b.printNum1();‎‎  }‎‎}‎
选项:
A: 2 1
B: 1 2
C: 1 1
D: 编译报错
答案: 【 编译报错

9、单选题:
‌以下代码执行结果是​‌class StaticTest{​‌  static{​‌    System.out.print("a ");​‌  }​‌  static{​‌    System.out.print("b ");​‌  }​

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注