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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© rchm 黑马帝   /  2012-3-31 21:06  /  3736 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问java中类的访问权限是只有两种吗?那内部类能不能有访问权限呢?为什么?

6 个回复

倒序浏览
修饰类的修饰符有三种吧:public---最大访问权限   default----默认访问权限    final-----无法被继承
对于内部类,当内部在成员位置上时,可以被成员修饰符修饰,如private--将内部类在外部类中进行封装  static---当内部类被static修饰后,只能直接访问外部类中的static成员  public  doufault
                 当内部类在局部位置上时,就不可以被成员修饰符修饰了
回复 使用道具 举报
[b]private 只能够是当前类,才能访问。

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

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

public 任何地方都可以访问。
外部类访问内部类的成员需要创建内部类的对象,之后可以访问内部类的任何成员,包括private成员,需要注意的是成员内部类不可以有静态成员。静态方法中的局部内部类只能访问外围类的静态成员,访问不了非静态成员
回复 使用道具 举报
作用域           当前类       同一package  子孙类       其他package
public                  √                   √                     √                       √
protected            √                       √                 √                      ×
包访问权限        √                    √                    ×                      ×
private                  ×                      ×                        ×                   ×                                          
不写时默认为包访问权限  
回复 使用道具 举报
本帖最后由 黄方 于 2012-3-31 23:25 编辑

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

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

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

        注意内部类是可以使用private权限的,而且还可以是static的。内部类可以正常调用其它类的方法,属性。别人也正常调用它。它的使用用和普通的方法,属性一致,我们就把它看做一个普通的方法就行了
回复 使用道具 举报
类的访问权限有四种:public,protected,缺省,private
回复 使用道具 举报
袁野 黑马帝 2012-4-1 07:22:39
7#
一个没有内部类的程序的访问修饰符有四个,public,protected,缺省,private
内部类可以用用这个四个访问修饰符修士而外部类,不可以用 private 访问权限
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马