Java程序的输出 |设置 48(静态关键字)
先决条件: Java的静态关键字
问题 1. 这个问题的输出是什么?
class Test1 {
public
static void main(String[] args)
{
int x = 20;
System.out.println(x);
}
static
{
int x = 10;
System.out.print(x + " ");
}
}
选项
A) 10 20
乙) 20 10
C) 10 10
D) 20 20
Output: A
说明:静态块在 main 方法之前执行。如果我们在Java类中声明一个静态块,它会在类加载时执行。
问题 2. 这个问题的输出是什么?
class Test1 {
int x = 10;
public
static void main(String[] args)
{
System.out.println(x);
}
static
{
System.out.print(x + " ");
}
}
选项
A) 10 10
B) 错误
C) 例外
D) 没有
Output: B
说明:如果我们试图在不创建类实例的情况下在静态块或静态方法中打印实例变量,则会出现错误:无法从静态上下文中引用非静态变量 x。
问题 3. 这个问题的输出是什么?
class Test1 {
int x = 10;
public
static void main(String[] args)
{
Test1 t1 = new Test1();
System.out.println(t1.x);
}
static
{
int x = 20;
System.out.print(x + " ");
}
}
选项
A) 10 20
乙) 20 10
C) 10 10
D) 错误
Output: B
说明:我们可以在创建类引用后在静态方法内部打印实例变量。
问题 4. 这个问题的输出是什么?
class Test1 {
int x = 10;
public
static void main(String[] args)
{
System.out.println(Test1.x);
}
static
{
int x = 20;
System.out.print(x + " ");
}
}
选项
A)10 10
乙) 20 20
C) 20 10
D) 错误
Output: D
说明:我们无法访问具有类名的实例变量。否则它会给出错误:非静态变量 x 不能从静态上下文中引用
问题 5. 这个问题的输出是什么?
class Test1 {
static int x = 10;
public
static void main(String[] args)
{
Test1 t1 = new Test1();
Test1 t2 = new Test1();
t1.x = 20;
System.out.print(t1.x + " ");
System.out.println(t2.x);
}
}
选项
A) 10 10
乙) 20 20
C) 10 20
D) 20 10
Output: B
说明:静态变量是类级变量。如果我们在任何参考中进行更新,那么所有指向参考值都会自动更改。