首先,我创建了一个名为PrivateShirt1
的类,并在同一个类文件中创建该类的对象后调用了一个私有字段名称,并且它有效。
public class PrivateShirt1{
private String name;
public static void main(String args[]){
PrivateShirt1 s1=new PrivateShirt1();
s1.name="hi";
System.out.println(s1.name);
}
}
接下来我创建了一个名为PrivateShirt2
的单独文件,其中我放置了PrivateShirt1
的主方法,并执行了编译和调用它的功能。修改后,文件PrivateShirt1
和PrivateShirt2
如下所示:
public class PrivateShirt2{
public static void main(String args[]){
PrivateShirt1 s1=new PrivateShirt1();
s1.name="hi";
System.out.println(s1.name);
}
public class PrivateShirt1 {
private String name;
}
当我编译PrivateShirt2
文件时,它给出了一个错误,即我试图调用的属性是私有的。
但是为什么在前面的例子中没有发生这种情况?我的意思是,在两种情况下都创建了对象,因此两者的规则应该相等,对吧?那为什么然后这个局部治疗呢?任何人都可以详细说明吗?
答案 0 :(得分:0)
您需要查看java访问控制。 PrivateShirt1中的name变量具有私有访问权限。这意味着该字段只能从该类内部引用。 PrivateShirt2无权访问该字段。你第一次打电话的原因是因为它是在PrivateShirt1中调用的
http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
答案 1 :(得分:0)
private
修饰符表示您只能从类中的代码访问它。因此,您可以从private
方法甚至是内部类访问static
成员。