Java中类的成员访问的四种控制方式总结

类的成员访问的控制方式有:public, protected, default和private。

访问的含义:

例如有一个类test1,如果定义了另一个类test2,在test2中创建了test1的实例,如果此时需要在test1中用test2的成员变量或方法,那么便是访问了test2的成员。

例如:

public class test1
{
	public int x;
	public test1(){};
	public void funtion(){};
}

public class test2
{
	public void f()
	{
		test1 a = new test1();
		a.x = 2;
		a.function();
	}
}

如此,我们便在类test2中访问了类test1的成员x和其成员方法function()。

public:

最不严格,任何类都可以该成员

private:

最严格,只有本类可以访问该成员,其他情况如同一包内的类、子类等都无法访问。

通常情况下,把一些需要有限制的成员变量用private修饰,同时定义出该成员变量的public方法setter和getter,这样便可以该类的方法来访问其内部受保护的成员变量。

default:

同一包内的类可以访问该成员

包内的类包括其子类,但是包外的类一律无法访问。

protected:

同一包内的类以及其子类可以访问

这里需要说明,包内的类有两种,其他类和子类;子类也有两种,包内的和包外的,所以同一包内的类和子类其实是有交集的——包内的子类。


总结表格如下:

访问范围

public

protected

default

Private

同一个类

同一个包内

同一个包中的子类

同一个包外的子类

是(通过继承)

包外的任何非子类的类

所以我们可以看到,严格程度从高到低为private > default > protected > public。

可以如此记忆,public是最容易访问的,private是最难访问的,default的界限比较清晰,包内和包外,而protected最复杂,包内的类和子类都可以访问。

部分内容摘自:http://m.blog.csdn.net/blog/pengbaoxing/8938795

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值