如果这是重复的,请告诉我..搜索但在堆栈溢出中找不到这个确切的问题。 说我们有
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) 希望我能删除答案:(
答案 0 :(得分:1)
public class C {
public static void main(String...args){
System.out.println(A.s);
System.out.println(B.s);
}
}
答案 1 :(得分:1)
如果你运行了代码,你会得到:
error: cannot find symbol
System.out.println(s);
这是因为在C类中未定义s
,如果您想访问A类的s
,请使用A.s
。同样,B类s
为B.s
。
例如:(对于s
的{{1}})
class B
输出:public void myMethod(){
System.out.println(B.s);
}
(您可以在Someone else
)
s
的任何内容
答案 2 :(得分:0)
我可以在你的帖子中看到很多错误。
1)仅声明已定义主方法的公开类。
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
}
}