A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 田磊阳 于 2013-4-4 09:34 编辑

这四个词,范围大小顺序如上,但是对他们修饰后的类,属性,方法的作用范围没有个系统的理解和总结,求指点.

8 个回复

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

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

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

不写就是friendly。


摘自 ----java访问权限修饰符public protected friendly private用法总结

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
围观一下。。
回复 使用道具 举报
这些修饰词只在包与包, 类与类,类与包等之间访问时发挥作用
private:只允许来自该类内部的方法的访问,不允许任何来自外部类的访问
protected:允许同一个包中任何类以及该类的任何地方的任何子类的方法的访问
不修饰:允许来自同一个包中任何类的方法的访问
public:允许任何类的方法的访问

评分

参与人数 1黑马币 +12 收起 理由
张熙韬 + 12

查看全部评分

回复 使用道具 举报
回复 使用道具 举报
default 即不添加修饰符
                 同包                                不同包                        同包继承                                                不同包继承
private        通过该类的方法                通过该类的方法                通过子类继承自父类的方法                        通过子类继承自父类的方法
public        该类或该类的方法        该类或该类的方法        通过子类或子类继承自父类的方法        通过子类或子类继承自父类的方                                                                                                                                                                                  法
default        该类或该类的方法        通过该类的方法                通过子类或子类继承自父类的方法        通过子类继承自父类的方法
protected        该类或该类的方法        通过该类的方法                通过子类或子类继承自父类的方法        通过子类继承自父类的方法

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1 鼓励一个

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
访问权限的等级最大到最小依次是:public,protected,包访问权限(无关键字)和private。

成员的访问权限取得对某成员(属性和方法)的实现方法有下面四种情况

1,  权限设置为public; 2,  默认包访问权限,在同一包中的其他类,可以访问; 3,  权限设置为public或者protected,通过继承的子类可以访问; 4,  设置为private,提供访问器和变异器方法(get/set);

下面介绍这四种权限(相对成员而言)

1,  包访问权限,在同一包中的类可以访问; 2,  Public:接口访问权限,任何类都可以访问; 3,  Private:你无法访问,除了包含该成员的类,其他类都可以访问。 4,  Protected:继承访问权限,包括包访问权限。在同一包中,还有就是子类可以访问。

类的访问权限类的访问

只有两种:包访问权限或public(用法同上) 如果不希望其他类拥有该类的访问权限,可以把这个来说有的构造器制定为private(比如单列模式)。
    摘自-----Java的访问控制权限。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马