Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个具有不同值的公共静态变量_Java - Fatal编程技术网

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
                }
            }