黑马程序员技术交流社区

标题: public ,priavte ,protected.都能修饰什么? [打印本页]

作者: 刘源    时间: 2012-8-5 18:24
标题: public ,priavte ,protected.都能修饰什么?
本帖最后由 刘源 于 2012-8-5 23:10 编辑

public ,priavte ,protected.都能修饰什么?,写他们和不写有什么区别?
问题已经解决”。

作者: 余明辉    时间: 2012-8-5 18:51
这些都是修饰符号,先画个帮你理解下,比较直观
public:你所修饰的这个成分在任何地方都可以被访问
default:如果什么都没写了,java默认的是default,这个可以被自己的子类以及同一个包中的其他类来访问
protected:只有同一个包中的类可以访问,一般都成为“包权限”,不过有点特殊的就是,protected修饰的成分,可以被子类访问
private:用它修饰的成分,只能在自己这个类的内部被访问。

访问权限.png (5.74 KB, 下载次数: 63)

访问权限.png

作者: 王健    时间: 2012-8-5 18:55
public声明的变量及方法,表明在整个包内包外都可使用。
private 声明的变量及方法,只在声明的类内可以使用。
protected包外不可使用。包内可以使用。
关键字        当前类       同一package        子孙类       其他package
public          √            √                          √            √
protected    √            √                         √            ×
friendly       √            √                         ×            ×
private        √            ×                         ×            ×
   
作者: 官文昌    时间: 2012-8-5 18:57
本帖最后由 官文昌 于 2012-8-5 18:59 编辑

四个作用域的可见范围如下表所示。

     说明:如果在修饰的元素上面没有写任何访问修饰符,则表示default



作用域    当前类  同一package  子孙类   其他package

public         √           √               √            √

protected  √            √               √            ×

default       √            √               ×            ×

private      √            ×                ×            ×

     备注:只要记住了有4种访问权限,4个访问范围,然后将全选和范围在水平和垂直方向上分别按排从小到大或从大到小的顺序排列,就很容易画出上面的图了。

作者: 徐小骥    时间: 2012-8-5 18:57
本帖最后由 徐小骥 于 2012-8-5 18:59 编辑

      public :允许所有客户访问

  protected:只能在本包内被该类的子类所使用

  private:只允许在本类内使用

  abstract:没有提供实现,需要子类提供

  static:与整个类相关,与单个对象无关

  final:不允许被重写

  synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权

       native:实现的平台相关的代码
曾经搜集的修饰符用法,希望能帮助你
作者: 范泰洋    时间: 2012-8-5 19:00
class之间的关系做一个简单的比喻,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域       当前类    同一package   子孙类     其他package

public        √       √             √           √

protected     √       √             √           ×

friendly      √       √             ×           ×

private       √       ×             ×           ×

别人的答案,感觉不错,希望对你能有助于理解!通俗易懂。希望可以加分啊!
作者: pphdsny3    时间: 2012-8-5 19:01
如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。
四个修饰符的作用域如下所示:

作用域        当前类        同一package        子孙类        其他package
public        Yes        Yes        Yes        Yes
protected        Yes        Yes        Yes        No
friendly        Yes        Yes        No        No
private        Yes        No        No        No
作者: 戎石锁    时间: 2012-8-5 19:04
本帖最后由 戎石锁问枫 于 2012-8-5 19:08 编辑

1.public
使用对象:类、接口、
成员介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的
2.private
使用对象:
成员介绍:成员只可以在定义它的类中被访问
3protected
使用对象:成员
介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类
必须是该成
员所属类的子类。

做下比喻:

public         是名字    谁都能用
protected   是门钥匙  家人能用
private       是日记     自己能用

楼主 我知道的还有几个修饰词,毕老师的视频上有讲过:(再其他的我还没学呢)
1.static:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。
静态方法是类方法,是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了多少实例,
该字段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行的,而不是在创建实例时执行的。
2.final:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),字段值不允许被修改。
3.abstract:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体为空,该方法的实现在子类中被定义,
并且包含一个abstract方法的类必须是一个abstract类
作者: 澄海    时间: 2012-8-5 22:32
新手啊 长知识了
作者: 澄海    时间: 2012-8-6 08:48
在看一遍
作者: Achille    时间: 2012-8-6 19:16
多看看吧  我们老师也是刚讲过的




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