- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java武汉理工大学王梦瑶.doc
Java修饰符简要介绍
——武汉理工大学
软件sy1001
王梦瑶
内容简要:
关于
protected ,private ,public ,package ,static ,final
的简要说明和个人理解
引言:
Java是完全面向对象的语言,在java中,修饰符是很常见并且很重要,很实用的知识点。他们有控制对类和成员变量,方法的访问,实现对类和对象的封装等作用。本文主要介绍protected受保护的,public公共的,private私有的,package包,static静态的,final最终的,其他还有transient过渡的,volatile易失的,abstract抽象的,native本地的,synchronized同步的,throws异常等,本文不做过多介绍。
正文:
Public(公共的)
带有public的修饰符的类,称为公共类,是访问修饰最宽的修饰词,公共类可以被任何包中的类使用。(读者需要注意:在同一源程序文件中只能有一个public类。)
由public修饰的变量或方法(注:变量和方法类似,后文中除了必要,将省去方法。)称为公共变量,可被任何包中的任何类访问,只有确认任何外部访问都不会带来不良后果的情况下才将成员声明为公共的。公共变量对任何类都是可见的,不具有数据保护功能。
声明有public的类
二、private(私有的)
带有private修饰符的类,称为私有类,是访问限制最窄的修饰词,只能被该类的对象访问,其子类不能访问,更不能跨包访问。
(此处用eclipse演示,不能创建private类,故此处不做实验指示,请读者自行验证。)
由private修饰的变量称为私有变量,只能被声明它的类使用,拒绝任何外部类的访问。私有变量是不公开的,它们得到了最好的保护,这是对类进行封装时使用的主要方法。
此处为声明private变量、方法的类可与访问它自己:
其他的包或者自己包里的类则不能访问:
三、protected(受保护的)
带有protected修饰符的类,称为保护类,能被该类的对象与子类访问,即使子类在不同包中也可以。
由protected修饰的变量称为受保护变量,可被声明它的类和派生的子类以及同一个包中的类访问。这就像一个大家庭,家庭成员的秘密可以被其他成员分享,也包括一些亲朋好友,但不想让外界知道。
此处为声明有protected成员、方法的类,读者可以看到,声明它的类可以访问它。
此处为同一个包的类,很明显,也可以访问。
此处为继承其的子类,读者可以看到,它也可以访问它。
此处为不同包的类,访问protected处时被标注了红叉,不能被访问
四、package(包)
由package修饰的变量称为包变量,在声明时常常省略package关键字,即没有修饰符的成员被称为包成员。包成员可被声明它的类和同一个包中的其他类(包括派生子类)所访问,在其他包中的子类则不能访问父类的包成员。这就像值得信任的好朋友可以分享你的秘密,却不想让外地的家庭成员知道。
有package的类
同一个包的类可以访问:
同一个包的子类可以访问:
不同包的子类不能访问:
五、static(静态)
Static声明的成员变量被视为类的成员变量,而不能把它当作实例对象的成员变量。换句话说,静态变量是类固有的,可以直接引用,其他成员变量仅仅在被声明、生成实例对象后才存在,才可以被引用。基于这样的事实,也把静态变量称为类变量,非静态变量称为实例变量。方法也相应称呼。
声明有static变量的类:
不同包中的类不可引用:
同一包的类中不可引用:
补充:
静态方法只能使用静态变量,不能使用实例变量。
类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。
请读者注意下一个程序下面的运行结果:
六、final(最终的)
带有final修饰符的类,称为最终类。最终类不可能有子类,也就是说它不能被继承。把一个类定义为最终类有两个理由:提高系统的安全性和出于对一个完美类的偏爱。(黑客常用的一个攻击技术是设计一个子类,然后用它替换原来的父类,子类和父类很相像,但做的事情却不太一样。为防止这样的事情发生,可以把类声明为最终类,不让黑客有可乘之机,如java中的string类。)
注:final不能和abstract同时修饰一个类,这样的类是没有意义的。
此处shinee14是final类,shinee15为其子类,报错。
被final修饰的量为常量,不能被再次赋值,不能改变值。
方法被声明为最终方法后,将不能被子类覆盖,即最终方法能被子类继承和使用,但不能在子类中修改或重新定义它。
文档评论(0)