黑马程序员技术交流社区

标题: java中类的访问权限问题! [打印本页]

作者: rchm    时间: 2012-3-31 21:06
标题: java中类的访问权限问题!
请问java中类的访问权限是只有两种吗?那内部类能不能有访问权限呢?为什么?
作者: 吴玉辉    时间: 2012-3-31 22:45
修饰类的修饰符有三种吧:public---最大访问权限   default----默认访问权限    final-----无法被继承
对于内部类,当内部在成员位置上时,可以被成员修饰符修饰,如private--将内部类在外部类中进行封装  static---当内部类被static修饰后,只能直接访问外部类中的static成员  public  doufault
                 当内部类在局部位置上时,就不可以被成员修饰符修饰了
作者: 胡生蒙    时间: 2012-3-31 22:49
[b]private 只能够是当前类,才能访问。

默认(没有写访问修饰符) 只能是同一个包中能访问。

protected(保护)同一个包可以访问或者子类也可以访问。

public 任何地方都可以访问。
外部类访问内部类的成员需要创建内部类的对象,之后可以访问内部类的任何成员,包括private成员,需要注意的是成员内部类不可以有静态成员。静态方法中的局部内部类只能访问外围类的静态成员,访问不了非静态成员
作者: 黑马胡林    时间: 2012-3-31 23:10
作用域           当前类       同一package  子孙类       其他package
public                  √                   √                     √                       √
protected            √                       √                 √                      ×
包访问权限        √                    √                    ×                      ×
private                  ×                      ×                        ×                   ×                                          
不写时默认为包访问权限  

作者: 黄方    时间: 2012-3-31 23:24
本帖最后由 黄方 于 2012-3-31 23:25 编辑

访问控制一共有4个,public(公有的),protected(受保护的),default(默认的,就是没有修饰符),private(私有的)。我们用一个图表示他们的权限:

修饰符  同类  同包  子类  通用性
公共(public) 是  是  是  是
受保护(protected)是  是  是
缺省(default)  是  是
私有(private) 是

权限修饰符,可以修饰类,方法和属性。而表达的意思与上表一致。有些注意的地方:类的权限不可以用private,你们想如果写一个类是private,谁也不让用写它干嘛;抽象方法的权限不可以是private和default.因为抽象方法一定要子类来实现的,子类都不可以用,抽象方法当然也没有意义了。

        注意内部类是可以使用private权限的,而且还可以是static的。内部类可以正常调用其它类的方法,属性。别人也正常调用它。它的使用用和普通的方法,属性一致,我们就把它看做一个普通的方法就行了

作者: 刘元明    时间: 2012-3-31 23:25
类的访问权限有四种:public,protected,缺省,private

作者: 袁野    时间: 2012-4-1 07:22
一个没有内部类的程序的访问修饰符有四个,public,protected,缺省,private
内部类可以用用这个四个访问修饰符修士而外部类,不可以用 private 访问权限




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