A. protected
B. static
C. final
D. default
B
global variable 是全局变量,也就是用 static 修饰的静态变量,因为它被所有实例所共享;
final 修饰的是常量,不可被改变;
这里再提一下Java里各种变量的英文:
global variable 全局变量 local variable 局部变量 block variable 方法内变量 另外,在类定义中出现的由 static 修饰的变量称为类变量或静态变量,
如果没有被 static 修饰,就是实例变量或非静态变量。
public class Test {
java.util.Date date;
public static void main(String[] args) {
Test test = new Test();
System.out.println(_________________);
}
}
A. test.date
B. date
C. test.date.toString()
D. date.toString()
A
错选为C,本以为需要转化成字符串才能输出,但是这里的date还未赋值,其值为null,此时不能使用toString()方法,只能原原本本地输出。
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
A
同一个类中 同一个包中 不同包的子类 不同包的无关类 public ✔ ✔ ✔ ✔ protected ✔ ✔ ✔ 无(空着不写) ✔ ✔ private ✔
A. A default constructor is provided automatically if no constructors are explicitly declared in the class
B. At least one constructor must always be defined explicitly
C. The default constructor is a no-arg constructor
D. A default constructor always exist in class
B
B选项说,只要要有一个构造方法需要被明确定义,但其实不定义的话也会有默认的构造方法,所以该选项错;
误选的是D,默认的构造方法一直存在于类中,这是没问题的,因为如果类中没有明确定义构造方法,就已经有默认的了,如果定义了,那就以定义的构造方法为默认构造方法。
class Base{
Base(){
System.out.println("Base");
}
}
public class Checket extends Base{
public static void main(String argv[]){
Checket c = new Checket();
super();
}
Checket(){
System.out.println("Checket");
}
}
A. Compile time error
B. Checket followed by Base
C. Base followed by Checket
D. runtime error
A
super() 调用必须是构造方法主体中的第一条语句
class A {
public A() {
System.out.println(
"The default constructor of A is invoked");
}
}
class B extends A {
public B() {
System.out.println(
"The default constructor of B is invoked");
}
}
public class C {
public static void main(String[] args) {
B b = new B();
}
}
A. Nothing displayed
B. "The default constructor of B is invoked"
C. "The default constructor of A is invoked""The default constructor of B is invoked"
D. "The default constructor of B is invoked""The default constructor of A is invoked"
C