




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.4Java的访问控制符,3.4.1Java的访问控制符种类public公共的,修饰类、属性和方法private私有的,修饰属性和方法protected受保护的,修饰属性和方法privateprotected私有受保护的,修饰属性和方法无符号的缺省定义友好的,修饰类、属性和方法作用:限定类、属性和方法被程序里的其他部分访问和调用,3.4.2语法结构,修饰符1、修饰符2.修饰符Nclass类名.修饰符1、修饰符2.修饰符N数据类型属性名修饰符1、修饰符2.修饰符N方法返回值类型方法名(形式参数列表),3.4.3访问控制符的特点公共访问控制符public可以被所有其他类所访问和引用。但对类而言,其中包含的域和方法能否被访问看自身的访问控制符是否也为public。缺省访问控制符规定该类只能被同一包中的类访问和引用,称之为包访问性;类中的域和方法若也没有访问控制符来限定,则同样具备包访问性。私有访问控制符private只能被该类自身所访问和修改,不能被任何其他类(包括子类)获取和引用。,保护访问控制符protected只能被该类自身与它在同一个包中的其他类、在其他包中该类的子类引用,其主要作用是允许其他包中的它的子类来访问父类的特定属性。私有保护访问控制符privateprotected可以被该类本身和该类的所有子类引用,类、属性和方法的访问控制,A:所有类,B:包中的类,D:本类,C:所有子类,E:包中子类,例:AccessControl.java,/测试访问控制符的使用importjava.applet.Applet;importjava.awt.*;publicclassAccessControlextendsApplet/定义主类,在浏览器中显示信息ClassBeAccessedc=newClassBeAccessed();/创建被访问使用类的对象(区域D)subClasssc=newsubClass();/创建被访问类子类的对象(区域C)PackageClassic=newPackageClass();/创建被访问类同一包中类的对象(区域B)publicvoidpaint(Graphicsg)/显示可访问信息g.drawString(SelfAccessible:,10,20);/类可以访问自己的所有属性和方法g.drawString(c.toString(),20,35);g.drawString(SubAccessible:,10,55);/子类可以直接访问父类的哪些属性g.drawString(sc.AccessDirectly(),20,70);g.drawString(PackageAccessible:,10,90);/同包中的类可以访问哪些属性g.drawString(ic.AccessDirectly(),20,105);g.drawString(Accessusingpublicmethod:,10,125);/通过调用被访问类的g.drawString(sc.AccessCls(),20,140);/公共方法来访问它的g.drawString(ic.AccessCls(),20,155);/所有性质的属性,classClassBeAccessed/被访问类是非公共类,同一包中的其他类都可创建其对象publicStringm_PublicProperty;/公共属性Stringm_FriendlyProperty;/缺省属性(又称为友元)protectedStringm_ProtectedProperty;/保护属性privateStringm_PrivateProperty;/私有属性ClassBeAccessed()/构造函数,为各属性赋初值m_PublicProperty=newString(Public);m_FriendlyProperty=newString(Friendly);m_ProtectedProperty=newString(Protected);m_PrivateProperty=newString(Private);publicStringtoString()/公共方法:连接各属性的字符串并显示return(m_PublicProperty+;+m_FriendlyProperty+;+m_ProtectedProperty+;+m_PrivateProperty+;);,classsubClassextendsClassBeAccessed/被访问类的子类ClassBeAccessedc=newClassBeAccessed();/创建被访问类的对象StringAccessDirectly()/直接调用被访问类的属性,可调用的有:return(c.m_PublicProperty+;/公共属性+c.m_FriendlyProperty+;/缺省属性+c.m_ProtectedProperty+;);/保护属性StringAccessCls()/通过调用被访问类的公共方法,可以调用它的各种性质的属性return(c.toString();classPackageClass/与被访问类在同一个包中的类ClassBeAccessedc=newClassBeAccessed();/创建被访问类的对象StringAccessDirectly()/直接调用被访问类的属性,可调用的有:return(c.m_PublicProperty+;/公共属性+c.m_FriendlyProperty+;/缺省属性+c.m_ProtectedProperty+;);/保护属性StringAccessCls()return(c.toString();/通过调用被访问类的公共方法,可以调用它的各种性质的属性,3.4.4其他修饰符及修饰符的混合使用,(1)volatile易失域修饰符可以同时被几个线程所控制和修改;一般用于修饰接受外部输入的属性,如当前时间的变量由系统后台线程修改;(2)native本地方法修饰符用来声明用其他语言书写方法体并具体实现方法功能的特殊的方法。声明:nativedoubleCaculateTax(Employeeemp);/调用C+编写的CaculateTax模块调用:Emp1.m_Tax=CaculateTax(Emp1);目的是充分利用已经存在的程序功能模块和避免重复工作;要注意跨平台性能。,(3)synchronized同步方法修饰符用于多线程共存的程序中的协调和同步。如果是一个类的方法(即static的方法),那么在系统调用执行前,将把系统类Class中对应当前类的对象加锁;如果修饰的是一个对象的方法(未用static修饰的方法),则这个方法在被调用执行前,将把当前对象加锁。,(4)修饰符的混合使用,大多数情况下,修饰符是可以混合使用的。例如:publicabstractclasstransportmeans.但有以下例外:abs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合法的企业间借款合同范本
- 2024年广西防城港市公安局招聘警务辅助人员真题
- 2025中外服务行业合同参考格式模板(标准版)
- 2025广西大学招聘专职辅导员25人模拟试卷及一套答案详解
- 2025年上半年山东铁投集团校园招聘、社会公开招聘165人考前自测高频考点模拟试题及答案详解一套
- 2025贵州黔西南州交通建设发展中心招聘公益性岗位工作人员考前自测高频考点模拟试题附答案详解(典型题)
- 2025金华永康市龙山镇人民政府工作人员招聘3人模拟试卷及一套答案详解
- 2025企业代理商业助学贷款借款合同书
- 2025北京大学电子学院招聘劳动合同制1人模拟试卷及答案详解(网校专用)
- 2025年芜湖宜居投资(集团)有限公司应届毕业生招聘8人模拟试卷及答案详解(考点梳理)
- 残疾人企业招聘活动方案
- 2025年中国铁塔校园招聘笔试备考题库(带答案详解)
- 儿童康复家庭培训课件
- 宜兴市杨巷牛羊屠宰有限公司牛羊屠宰线生产线扩建项目环评资料环境影响
- 年九年级中考备考方案语文中考备考方案
- 台球俱乐部助教协议书
- 任务二鞋带自己系(教案)-浙教版劳动一年级上册
- 触电应急培训课件
- 《2025急性冠脉综合征患者管理指南》解读
- 北京市西城区2024-2025学年高三上学期期末考试英语试卷
- 外科护理学(第七版)复习试题有答案
评论
0/150
提交评论