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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张海洋 中级黑马   /  2013-3-23 14:23  /  2396 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

访问修饰符“public/private/protected/缺省的修饰符”的使用有什么不同?

点评

如果你的问题已经得到解决,请及时将主题改为[已解决],如果还有问题请继续追问,谢谢  发表于 2013-3-23 15:54

4 个回复

倒序浏览
从网上给你抄一段看看吧,其实书上都有介绍的:
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用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 blackcaismine 于 2013-3-23 15:20 编辑

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

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

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
我找到一张较为全面的图,可以解释Java权限修饰符的各种访问范围,希望对你有帮助:

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

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
我发现你问的问题 视频上都会有详细讲的  ,建议楼主先好好看看视频 不知道了再问啊 。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马