黑马程序员技术交流社区

标题: 关于java问题中的权限 [打印本页]

作者: 唐林渊    时间: 2012-2-23 23:03
标题: 关于java问题中的权限
public的权限是最大的,private的权限是最小的.那什么都没有写,这个算什么呢?权限有多大?
作者: 王睿    时间: 2012-2-24 00:54
public 意味着被修饰的所有属性和方法对所有人开放
protected 指修饰的属性或者方法可以被包级可见的类或者继承其的子类可见
默认权限 如果不加任何修饰词的话,则默认指的是包级可见
private 指被修饰的属性或者方法只能被其自身访问
作者: 【专】【属】    时间: 2012-2-24 09:54
1、private修饰词,表示成员是私有的,只有自身可以访问;   

2、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。   

3、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;  

4、public修饰词,表示成员是公开的,所有其他类都可以访问;

5、类的访问限制,仅有public和包访问权限;   

   a、一个Java文件只能有一个public类  

   b、public类的名称必须同Java文件名完全一致

  c、若Java文件中没有public类,则文件名可以任意


作者: 黄奇耀    时间: 2012-2-24 12:14
1、public:对所有用户开放,所有用户都可直接调用
2、private:私有。除了类自己之外,任何人都不可直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可使用。
3、protected:对于子女、朋友来说,就是public的,可自由使用,无任何限制;而对于其他的外部类,protected就变成private。(同一个包中的类,若不在同一个包中,必须为其子孙类才可使用)

4、默认:默认可以称为friendly,但是java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。

作用域        当前类    同一package   子孙类     其他package
public            √                 √                   √               √
protected      √                 √                   √               ×
friendly         √                 √                    ×               ×
private         √                  ×                    ×               ×

补充说明:
       1.每个编译单元(类文件)都仅能有一个public class
       2.public class的名称(包含大小写)必须和其类文件同名。
       3.一个类文件(*.java)中可以不存在public class。
        如果我们在某个包内撰写一个class,仅仅是为了配合同一包内的其他类工作,并且我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋;或者有可能过一段时间之后会彻底改变原有的做法,并以全新的版本代替旧版本,这种情况下一般会默认。
       4、类不可以是private和protected。
作者: 刘凤山    时间: 2012-2-24 14:06
还有一种系统默认的也就是什么也不写 权限介于private 与public 之间。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2