java访问权限 public private protected

来源:互联网 发布:淘宝商品特点 编辑:程序博客网 时间:2024/05/18 02:51

作者:yan

1. Java中的访问控制
表1-1

 

可见/访问性在同一类中同一包中不同包中 同一包子类中 不同包子类中  public yes yes yes yes yes protected  yes yes no yes yes package  yes yes no yes no private yes no no no no

 

(1) 在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定package,那么java会把它放在缺省包中,一般来说这个缺省的包就是当前目录。
(2) 在子类中的方法如果重载了父类的方法,那么该方法的可见级别应更底或者相同,如父类中的方法是public,那么子类中方法必须是public。
(3) 在java中,一般来说,变量成员最好是private,对它们的访问可以通过public的方法,在这些方法中可以做些控制以保证数据的一致性。这些方法名一般以get和set做为前缀。


Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,可称它为packeged权限,很多人也称它为friendly访问权限,而packaged和friendly这两个关键字在实际中都是不存在的,即默认值。

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友(友元)。

1.   public  表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。

2.   private  表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3.   protected 对于子女、朋友来说,就是public 的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private 。

4.   friendly修饰的类叫友元类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中,就是说在一个包内的类互为友元类。


原创粉丝点击