Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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_Access Modifiers - Fatal编程技术网

Java 在主方法中访问的类的私有成员

Java 在主方法中访问的类的私有成员,java,access-modifiers,Java,Access Modifiers,假设我们有以下代码: public class TestScope { private int a = 1; public static void main(String[] args) { TestScope ts = new TestScope(); ts.a = 6; System.out.println(ts.a); } } 为什么在第行:ts.a=6;我可以访问私

假设我们有以下代码:

 public class TestScope {
      private int a = 1;
         public static void main(String[] args) {
           TestScope ts = new TestScope();
           ts.a = 6;
           System.out.println(ts.a);
        }
    }
为什么在第行:ts.a=6;我可以访问私有变量a吗?
我认为私人成员不能在外面访问。我并不低估这个例子。

静态方法仍然被认为是它们在其中声明的类的一部分,因此可以访问私有方法/字段


如果在另一个类中有main方法或任何其他静态或实例方法,则确实无法访问。静态方法仍然被视为它们在其中声明的类的一部分,因此可以访问私有方法/字段


如果在另一个类中有main方法或任何其他静态或实例方法,则确实无法访问。如果不在外部,则属于同一个类。

如果不在外部,则属于同一个类。

静态方法被视为其所在类的“一部分”,因此具有对其实例的私有范围访问。几天前也解决了这个问题。

静态方法被认为是其所在类的“一部分”,因此具有对其实例的私有范围访问。这个问题在几天前就被解决了。

这是因为a和mainString[]都是类TestScope定义的一部分

Private表示只能在类定义内部访问变量或方法。a是实例变量的事实并不意味着它不能被同一类中的静态公共方法访问

如果公共静态void mainString[]位于不同的类中,那么它将无法访问ts的a,因为a对其他类是隐藏的。

这是因为a和mainString[]都是类TestScope定义的一部分

Private表示只能在类定义内部访问变量或方法。a是实例变量的事实并不意味着它不能被同一类中的静态公共方法访问


如果公共静态void mainString[]位于不同的类中,则它将无法访问ts的a,因为a对其他类是隐藏的。

或者更具体地说,在类中定义的静态方法仍然被视为该类的一部分。或者更具体地说,在类中定义的静态方法仍然被视为该类的一部分