黑马程序员技术交流社区

标题: 修饰符 [打印本页]

作者: 张海洋    时间: 2013-3-23 14:23
标题: 修饰符
访问修饰符“public/private/protected/缺省的修饰符”的使用有什么不同?
作者: VOIDMAIN    时间: 2013-3-23 15:14
从网上给你抄一段看看吧,其实书上都有介绍的:
java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种。
    1、权限访问修饰符
    public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。

              包外         子类          包内           类内
public      yes        yes          yes         yes
protected   no         yes          yes         yes
default     no         no           yes         yes
private     no         no           no          yes

    2、final修饰符
    final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
     3、abstract修饰符
     abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
     4、static修饰符
     static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例。
作者: blackcaismine    时间: 2013-3-23 15:19
本帖最后由 blackcaismine 于 2013-3-23 15:20 编辑

private表示本类成员或变量只有本类中的方法可以调用,也就是说只能在该成员隶属于的类中访问。
public修饰的成员或变量可以被任何类中的任何方法调用。
protected表示父类中写了一个protected的成员或变量,那么只有他的子类才能访问这个成员或变量。
缺省的修饰符的话只能最多同包中的类可以访问,除了这个范围的话就无法访问了。

              当前类    同一package   子孙类     其他package
public        √          √             √           √
protected     √          √             √           ×
缺省          √          √             ×           ×
private       √          ×             ×           ×

作者: HM李超    时间: 2013-3-23 16:54
我找到一张较为全面的图,可以解释Java权限修饰符的各种访问范围,希望对你有帮助:

注:1,包访问控制符是一种特殊的修饰符,不用任何访问控制符就是包访问控制符,
       2,对于初始化块和局部成员,它们不能使用任何访问控制修饰符,
       3,native修饰抽象方法,一旦java程序中包含native,那么就会失去跨平台性(这个我也不太了解);
       4,abstract和final不能同时使用,abstract和static不能同时使用,abstract和private不能同时使用;

作者: 刘凯    时间: 2013-3-23 16:56
我发现你问的问题 视频上都会有详细讲的  ,建议楼主先好好看看视频 不知道了再问啊 。。。




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