Java程序的输出 |设置 50
Q 1.这个程序的输出是什么?
class Test {
public final int a;
} class Example {
public static void main(String args[])
{
Test obj = new Test();
System.out.println(obj.a);
}
}
选项
A. 0
B. 垃圾值
C. 编译时错误:变量未初始化
D. 运行时错误:a 是空白变量
输出:
C. Compile time error : variable is not initialized
说明:在Java,final 变量默认为 0。初始化final变量只有三种方式 1.使用构造函数 2.初始化块 3.在变量声明时。
Q 2.这个程序的输出是什么?
class Example {
private int x;
public static void main(String args[])
{
Example obj = new Example();
}
public void Example(int x)
{
System.out.println(x);
}
}
选项
A. 0
B. 垃圾值
C.编译时错误
D. 无输出:空白屏幕
输出:
D. No output : Blank Screen
说明:该程序中没有构造函数。这是一个类似于类名的方法,但它不是构造函数,因为构造函数不是返回类型。所以在这个程序中输出是空白屏幕。
Q 3.这个程序的输出是什么?
class Example {
private int x;
public static void main(String args[])
{
Example obj = new Example(5);
}
public Example(int x)
{
System.out.println("x = " + x);
}
public void Example(int x)
{
System.out.println(x);
}
}
选项
A. x = 5
B. 5
C. 编译时错误:Example(int) 的不明确调用
D. 运行时错误
输出:
A. x = 5
说明:在这个程序中,“public Example(int)”是构造函数,“public void Example(int)”是方法,所以编译器不会混淆。并且在创建对象时会自动调用构造函数。
Q 4.这个程序的输出是什么?
class Test {
public static void main(String args[])
{
String str1 = new String("Hello World");
String str2 = new String("Hello World");
String str3 = "Hello World";
String str4 = "Hello World";
int a = 0, b = 0, c = 0;
if (str3 == str4)
a = 1;
else
a = 2;
if (str1.equals(str3))
b = 1;
else
b = 2;
if (str1 == str4)
c = 1;
else
c = 2;
System.out.println("a= " + a + " b= " + b + " c= " + c);
}
}
选项
A. a=2 b=1 c=2
B. a=2 b=2 c=2
C. a=1 b=2 c=1
D. a=1 b=1 c=2
输出:
D. a=1 b=1 c=2
解释:当我们在 new 关键字的帮助下创建对象时,会创建一个新的内存和引用变量包含内存位置。这里两次使用相同的字符串创建内存,但我们比较的是对象而不是字符串,因此对象指向不同的内存位置,因此它们不相等。
Q 5.上例中创建了多少个对象?
选项
A.1
B. 2
C.3
D. 4
输出:
C. 3