概述
1.Java中成员变量的访问权限有四种
public : 允许所有类可以访问
protected :允许它的子类和同一包下的类进行访问
private :只允许在本类中访问
default :不加任何修饰权限的就默认为default,这个权限和protected很像,即仅允许本包下的类进行访问,
与Protected不同的是,protected允许子类访问,而defalut如果子类不在同一包下,也不允许访问。
2.就上面的几种权限,举几个简单例子介绍下
public
package A;
public class A
{
public int temp=0;//定义一个public 变量
}
package A;
public class B()
{
A a=new A();
a.temp=1;//可以访问
}
package B;
public class C
{
A a =new A();
a.temp=1;//可以访问
}
//子类也一样,任何包,任何类都可以进行访问
</pre><pre name="code" class="java">package A;
public class A
{
public int temp=0;//定义一个public 变量
}
package A;
public class B()
{
A a=new A();
a.temp=1;//可以访问
}
package B;
public class C
{
A a =new A();
a.temp=1;//不可以访问
}
package B;
public D extends A;
{
void Change()
{
temp=1;//可以访问
}
}
//子类可以访问,本包类都可以进行访问
private
package A;
public class A
{
public int temp=0;//定义一个public 变量
}
package A;
public class B()
{
A a=new A();
a.temp=1;//不可以访问
}
package B;
public class C
{
A a =new A();
a.temp=1;//不可以访问
}
//子类也不可以,只有本类才可以进行直接访问
package A;
public class A
{
public int temp=0;//定义一个public 变量
}
package A;
public class B()
{
A a=new A();
a.temp=1;//可以访问
}
package B;
public class C
{
A a =new A();
a.temp=1;//不可以访问
}
package B;
public D extends A;
{
void Change()
{
temp=1;//不可以访问
}
}
package A;
public E extends A;
{
void Change()
{
temp=1;//可以访问
}
}
//只允许本包内访问,即使是子类也只能在包内才能访问,否则也无法访问(这点与protected不同)
3.当然,以上的不能访问都为不能直接访问
我们也可以通过在类中提供适当的public 方法去给其他类调用而间接的访问private成员
例如
package A ;
public class A
{
private int temp;
public void setTemp(int temp)
{
this.temp=temp;
}
}
package B;
public class B
{
A a=new A();
a.setTemp(1);//可以访问
}
最后
以上就是无私自行车为你收集整理的Java成员变量的访问权限的全部内容,希望文章能够帮你解决Java成员变量的访问权限所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复