java选择题——代码运行题
1. 以下代码运行输出是()
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); //Person的name属性为private
}
}
A. 输出:Person
B. 没有输出
C. 编译出错
D. 运行出错
分析:
2. 以下程序的运行结果是()
class Person{
public Person(){
System.out.println("this is a Person");
}
}
public class Teacher extends Person{
private String name="Tom"
public Teacher(){
System.out.println("this is a teacher");
//编译错误:Constructor call must be the first statement in a constructor
//构造函数调用必须是构造函数中的第一个语句
super();
}
public static void main(String[] args){
Teacher teacher = new Teacher();
//编译错误:Cannot use this in a static context
//不能在静态上下文中使用this
System.out.println(this.name);
}
}
A. this is a Person
this is a teacher
Tom
B. this is a teacher
this is a Person
Tom
C. 运行出错
D. 编译有两处错误
3. 以下代码,描述正确的有()
interface IDemo{
public static final String name; //1
void print(); //2
public void getInfo(); //3
}
abstract class Person implements IDemo{ //4
public void print(){}
}
A. 第1行错误,没有给变量赋值
B. 第2行错误,方法没有修饰符
C. 第4行错误,没有实现接口的全部方法
D. 第3行错误,没有方法的实现
4. 以下程序的运行结果是()
public class Increment {
public static void main(String args[]){
int a;
a = 6;
System.out.print(a);
System.out.print(a++);
//相当于
//System.out.println(a);
//a = a + 1;
//自增在打印之后执行
System.out.print(a);
}
}
A. 6 6 6
B. 6 6 7
C. 6 7 7
D. 6 7 6
自增(++)/ 自减(–)
a++/a– 与 ++a/–a的区别:
放在变量后是先用原来的值进行其他操作,然后再对自己做修改。
放在变量前是先对自己做修改,再用修改后的值进行其他操作。
System.out.print(a++);
相当于
System.out.println(a);
a = a + 1;
自增在打印之后执行(规定???)
5. 下列输出结果是()
int a = 0;
while(a < 5){
switch(a){
case 0:
case 3: a = a + 2;
case 1:
case 2: a = a + 3;
default : a = a + 5;
}
}
System.out.println(a);
A。0
B。5
C。10
D。其他
case语句不是必须包含break语句。
如果没有break语句,程序会继续执行下一条case语句,直到出现break语句。
switch case执行时,先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。
转载于:https://my.oschina.net/u/4074987/blog/3063141
原文地址: https://blog.csdn.net/chiyan2167/article/details/100649908
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
相关文章