Java学习笔记(类的可见性)

1)类的可见性:public;友好的(无关键字);protected;private;
    public:公开类,在包内,包外都可见,是可见性级别最高的;
    友好的:也是默认的安全级别,包外不可见,包内可见.用在内部类同protected级别相同.
   protected:保护级,只能用于内部类.对类及子类(包内子类,包外子类不可见)和包内其它类可见.
   private:私有级,只能用于内部类,只对类本身可见。
类的可见性还是比较复杂,特别是内部类嵌套后,但基本规则还是上面所述,因此建议在写类时,如果嵌套,
不要超过2层,即只要嵌套一层即可。这样处理比较简单,没必要多次多可见性嵌套把事情弄复杂。
下面是示例代码:

public class MyClass02 {
	//保护级对相同包中子类和友好类可见
	protected class MyClass03{

	}
	//下面的类只对本类可见,在类外无法访问呢.
	private class MyClass04{

	}
	//同protected.
	class MyClass05
	{
		
	}
	//对子类可见,包内,包外其它类都可见.
	public class MyClass06
	{
		
	}
}
class MyClass021 extends MyClass02
{
	MyClass03 theA =new MyClass03();
	MyClass05 the05=new MyClass05();
	
}
class MyClass11
{
	MyClass03 theA=new MyClass02().new MyClass03();
}
//位于另外一个包.该类继承与MyClass02
class MyClass022 extends MyClass02
{
	public void Do()
	{
		//MyClass03,MyClass05不可见,下面语句编译有错.
		//MyClass03 theA =new MyClass03();
		//MyClass05 the05=new MyClass05();
		
		//下面语句可以.
		MyClass06 the6=new MyClass06();
	}
	
}


2)类的成员可见性:
      public:公共成员,其它类可见(包内,包外都可见),包内包外子类都可见;内部嵌套类可见;
      protected:保护级,包内其它类可见,包内包外子类都可见;内部嵌套类可见;
      无关键字:友好的,包内其它类可见,但包内包外子类都不可见;内部嵌套类可见;无继承性。
      private:私有的,其它类不可访问,但对该类的内部类可见;
另外需要注意的时,内部类可以定义在类的方法里,这个时候的可见性是同作用域密切相关的.一般情况
下建议不要这样去使用类,会增加维护和理解的困难.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值