Java 两个具有不同值的公共静态变量
如果这是重复的,请告诉我。。已搜索,但在堆栈溢出中找不到此确切问题。 说我们有Java 两个具有不同值的公共静态变量,java,Java,如果这是重复的,请告诉我。。已搜索,但在堆栈溢出中找不到此确切问题。 说我们有 public class A{ public static String s="Arnab"; } public class B{ public static String s="Someone else"; } public class C{ public void myMethod(){ System.out.println(s);
public class A{
public static String s="Arnab";
}
public class B{
public static String s="Someone else";
}
public class C{
public void myMethod(){
System.out.println(s);
}
}
类C的myMethod()中的syso将打印什么?
为什么
更新:哦,对不起,我的不好。。没有意识到没有使用类名(如A.s)
希望我能删除答案:(
如果运行代码,您将得到:
error: cannot find symbol
System.out.println(s);
这是因为C类中未定义s
,如果要访问A类的s
,请使用A.s
。类似地,B类的s
将是B.s
例如:(对于B类的s
)
输出:其他人
(你会得到你在B类中分配给s
的任何东西)我可以在你的帖子中看到很多错误
1) 仅声明定义了main方法的public类
2) 始终在方法内定义初始化和声明以外的语句
3) 在声明静态变量的类之外,始终使用类名或对象名来使用静态变量
4) 您只能使用类的实例来使用实例变量(不是静态的)
关于您的查询:否这些变量不重复。输出取决于您对该变量使用的类
class A{
public static String s="Arnab";
}
class B{
public static String s="Someone else";
}
public class C{
public static void main(String [] ar){
System.out.println(A.s); // gives:Arnab
System.out.println(B.s); // gives:Someone Else
}
}
编译错误。您应该使用类名来使用“s”。输出还取决于您使用的类名。并且不能将SOP直接包含在类中。编译错误。你试过编译代码吗?另外,你不能声明3个公共类。
public void myMethod(){
System.out.println(B.s);
}
class A{
public static String s="Arnab";
}
class B{
public static String s="Someone else";
}
public class C{
public static void main(String [] ar){
System.out.println(A.s); // gives:Arnab
System.out.println(B.s); // gives:Someone Else
}
}