提示:JAVASE面向对象习题
文章目录
一、概念理解
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
1. 以下描述成员变量和局部变量的区别正确的是()
A、成员变量作为类的成员直接声明在类中,可以通过this引用
B、局部变量可用在方法定义中或声明上
C、成员变量有默认值初始化
D、局部变量必须正确声明初始化后才可使用
【参考答案】: ABCD
【您的答案】: ACD
2.判断:静态成员既可以通过对象名来访问,也可以通过类名直接访问它。
A、对
B、错
【参考答案】: A
【您的答案】: B
类名.静态成员 对象.静态成员
3.下面把方法声明为抽象方法正确的是?
A、public abstract method();
B、public abstract void method();
C、public abstract void method(){}
D、public void method() extends abstract;
【参考答案】: B
【您的答案】: C
抽象方法无方法体时不需要大括号
4.下面关于外部类和内部类成员的相互访问的规则中,正确的选项是( )
A、成员内部类可以直接访问外部类的成员
B、外部类可以直接访问成员内部类的所有成员
C、外部类不能访问成员内部类的任何成员
D、外部类可通过创建成员内部类的实例来访问成员内部类的成员
【参考答案】: AD
【您的答案】: AC
4.外部类访问内部类
外部类可以通过创建成员内部类实例来访问成员内部类中的属性和方法
参考:https://blog.csdn.net/chunchunlaila/article/details/107224708
二、代码分析
1.第一题
编译运行如下Java代码,输出结果是( )。
class Base {
public void method(){
System.out.print ("Base method");
}
}
class Child extends Base{
public void methodB(){
System.out.print ("Child methodB");
}
}
class Sample {
public static void main(String[] args) {
Base base = new Child();
base.methodB();
}
}
A、Base method
B、Child methodB
C、Base method Child MethodB
D、编译错误
【参考答案】: D
【您的答案】: B
创建的是父类对象,如果要用子类方法需要向下转型。
2.第二题
如下Java代码运行的结果是( )
public class Test {
final int age;
public Test(){
age=10;
}
public static void main(String[ ] args) {
System.out.println(new Test().age);
}
}
A、0
B、10
C、"null"
D、运行时出现异常
【参考答案】: B
【您的答案】: A
被final修饰的变量
1.在定义时直接赋值
public class Test {public final String str = “mark”;
}
2、声明时不赋值,在构造方法中进行赋值
public class Test {public final String str;public Test() {this.str = “mark”;}
}
3、声明时不赋值,在构造代码块中进行赋值
public class Test {public final String str;{this.str = “mark”;}
}