我是靠谱客的博主 无私自行车,最近开发中收集的这篇文章主要介绍Java成员变量的访问权限,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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;//可以访问
}

//子类也一样,任何包,任何类都可以进行访问



protected 

</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;//不可以访问
}

//子类也不可以,只有本类才可以进行直接访问


default 

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成员变量的访问权限所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部