- JAVA每日随手练【类和对象】
- 1.单选题一
- 2.单选题二
- 3.单选题三
- 4.单选题四
- 5.单选题五
- 6.单选题六
- 7.单选题七
- 8.单选题八
阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()
A.能编译通过,并正确运行
B.因为使用了未初始化的变量,所以不能编译通过
C.以错误的方式访问了静态方法
D.能编译通过,但因变量为null,不能正常运行
class Test {
public static void hello() {
System.out.println("hello");
}
}
public class MyApplication {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=null;
test.hello();
}
}
正确答案:A
【分析】:Test中的hello方法是静态方法,静态方法的调用与对象是否实例化无关。直接使用Test.hello()也可以编译通过并成功运行
2.单选题二下面代码的运行结果是()
A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常
public static void main(String[] args){
String s;
System.out.println("s="+s);
}
正确答案:C
【分析】:成员变量有初始值,而局部变量没有初始值。本体中的s定义在方法中为局部变量没有初始值。变量没有初始值就使用,则编译通不过
3.单选题三以下代码运行输出的是()
A.输出:Person
B.没有输出
C.编译出错
D.运行出错
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);
}
}
正确答案:C
【分析】:子类不能访问父类私有成员
Person p = new Child()
new Child()创建了Child类的实例化对象,变量p引用了这个Child类的对象,所以p是引用变量,而p前面的类名则表明p的类型,即是Person类型或者Child类型。
p.name不能输出:因为Person中的name属性是被private属性修饰的。private仅支持在本类中调用,所以在其他类中是无法引用的。
下面哪一项不是 java 类访问控制关键字()
A.public
B.this
C.private
D.protected
正确答案:C
【分析】:this代表的是当前类的实例对象,可以在类的实例化方法中作为对象来使用,不能用来修饰类或者方法。
5.单选题五在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()
A.this.A(x)
B.this(x)
C.super(x)
D. A(x)
正确答案:B
【分析】:
this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为this(参数)【this用于构造方法格式】
A选项:this.A(x)是调用普通方法的格式【this用于非构造方法格式】
C选项:super(x)为调用父类构造方法的格式
D选项:A(x)为调用静态方法的格式
以下哪项不属于java类加载过程?()
A.生成java.lang.Class对象
B.int类型对象成员变量赋予默认值
C.执行static块代码
D.类方法解析
正确答案:B
【分析】:
类的加载包括:加载,验证,准备,解析,初始化。
选项A:生成java.lang.Class对象是在加载时进行的。生成Class对象作为方法区这个类的各种数据的访问入口。
选项B:既然是对象成员,那么肯定在实例化对象后才有。在类加载的时候会赋予初值的是类变量,而非对象成员。
选项C:这个会调用。可以用反射试验。
选项D:类方法解析发生在解析过程。
以下代码在编译和运行过程中会出现什么情况()
A.编译运行通过,输出结果是88
B.编译时错误,count变量定义的是私有变量
C.编译时错误,System.out.println方法被调用时test没有被初始化
D.编译和执行时没有输出结果
public class TestDemo{
private int count;
public static void main(String[] args) {
TestDemo test=new TestDemo(88);
System.out.println(test.count);
}
TestDemo(int a) {
count=a;
}
}
正确答案:A
【分析】:
private是私有变量,只能用于当前类中,题目中的main方法也位于当前类,所以可以正确输出
给定以下代码:程序输出结果为:()
A.aaa
B.bbb
C.aaabbb
D.bbbaaa
class Test{
public String toString() {
System.out.print("aaa");
return "bbb";
}
}
public static void main(String[] args) {
System.out.println(new Test());
}
正确答案:C



