




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录Java主要修饰符的使用“说明书”1一、public、protected和private2一)对类的类型的修饰2二)未标注此类类型的成员变量和成员函数2三)public、protected和private在子类中的可见情况3四)public、protected和private在非子类中的可见情况7二、final9(一)对类类型的修饰10(二)final修饰的成员函数10(三)final修饰的成员变量11三、static11附录:原函数14一)father.java14二)childinsamepa.java15三) childindifferentp.java16四)AFINALCLASS.java17五)DEFFERENTPAKAEGEIMPORT.java18六)FORSTATIC.java19七)ROOT.java19武汉理工软件1003班 0121010680328 陈莹伊Java主要修饰符的使用“说明书”示例用工作空间结构:一、public、protected和private一)对类的类型的修饰类的类型只能使用public修饰,或者省略。二)未标注此类类型的成员变量和成员函数未标注类型的成员变量和成员函数在java类中的使用可见类别不同于public、protected和private。当成员变量和成员函数无这三个修饰符修饰,无论是该类的子类还是非子类,只要是和该类属于同一个包,这些成员变量和成员函数都是可见的。而对于不属于同一个包的类,它们则是不可见的。示例用class father的成员列表:在同包子类中的可见情况:在不同包子类中的可见情况:在同包非子类中的可见情况:在不同包非子类中的可见情况:三)public、protected和private在子类中的可见情况father类成员表列:a)对于子类而言,无论是否属于同一个包,父类中的public类型和protected类型变量和函数在子类中是可见的。在同包中的子类:在不同包中的子类:b)子类可通过父类的public类和protected类成员函数调用父类中的private类变量和函数,如父类的private变量的getter和setter函数。示例用子类函数:public void test1()/证明子类可以调用父类的public和protected类型van=9;this.pubvan=19;public void test2()/通过set函数来影响父类的private成员变量van=99;this.pubvan=100;this.setPrivan(101);在main函数中的使用:childinsamepa cis=new childinsamepa(22,23,24);cis.printfa();cis.test1();cis.printfa();cis.test2();cis.printfa();运行结果截图:c)对于成员变量而言,子类中可以存在父类的同名变量且可以为不同的修饰符所修饰。这些成员变量在子类的变量使用时覆盖了父类继承下来的同名变量,但在使用父类的变量使用函数时,则对于这些函数,这些同名变量对他们没有任何影响。既使用父类的变量使用函数时,受到使用的是父类继承下来的成员变量而非子类重新定义的成员变量。示例用子类变量和该变量的调用函数:public int provan;public void test()/protected变量调用实验van=12;在main函数中的使用:childindifferentp cid=new childindifferentp(121,122,123);cid.printfa();cid.test();cid.printfa();System.out.println(van);运行结果截图:未定义子类变量provan且在主函数中没有打印provan语句时:定义了子类变量provan时:d)对于普通的public和protected函数而言,子类可使用同名的函数对其进行彻底的覆盖,既即使在使用父类的函数对这些被覆盖的函数进行调用时,所调用的也是子类中的同名函数。这些函数可以和父类所定义函数类型不相同。函数体:public void pubfunc()/覆盖System.out.println(this is a public function of this child class.);在main函数中的使用:childinsamepa cis=new childinsamepa(22,23,24);cis.printfa();cis.printpubfunc();运行结果截图:e)对于普通的private函数而言,其覆盖关系类似于成员变量,既子类中的同名函数无法对其进行彻底的覆盖。示例用同名函数:在main函数中的使用:childindifferentp cid=new childindifferentp(121,122,123);cid.printfa();System.out.println();cid.prifunc();运行结果截图:换行前的部分说明printfa函数调用的是父类继承下来的prifunc函数。四)public、protected和private在非子类中的可见情况1)public全区域可见。2)对于protected类的变量和函数而言,当引入类和被引入类同包时,这些变量和函数可见;当引入类和被引入类非同包时和,这些变量和函数则是不可见的。3)private不可见引入类和被引入类同包时的情况:示例用同包非子类函数:public void UseFather()father fa=new father(10,10,10);System.out.println(Now it use the function it can use in class father.);func();fa.pubfunc();在main函数中的使用:AFINALCLASS afc=new AFINALCLASS();nounce();afc.UseFather();运行结果截图:引入类和被引入类不同包的情况:示例用非同包非子类函数:public void UseClassFather()father fa=new father(12,12,12);System.out.println(This is a normal class in different package of class father.);System.out.println(Now it use the function it can use in class father.);fa.pubfunc();在main函数中的使用:DEFFERENTPAKAEGEIMPORT dpi=new DEFFERENTPAKAEGEIMPORT();dpi.UseClassFather();运行结果截图:二、final示例用的final类:public final class AFINALCLASS final public double pi=3.1415926;public void pronounce()System.out.println(This is a final class,it cant have child.);public void UseFather()father fa=new father(10,10,10);System.out.println(Now it use the function it can use in class father.);func();fa.pubfunc();/public void UseForTest()/证实final前缀的变量不可改变值/pi=9;/(一)对类类型的修饰对于一个类而言,如果它前面带final修饰符,则这个类是不可用被继承的,既这个类不能有子类。当试图对final类的类进行继承时:(二)final修饰的成员函数对于一个成员函数而言,当其前面有final对其进行修饰时,这个函数不可被这个类的子类的函数所覆盖。示例用父类中的函数:final public void AFinalFunc()System.out.println(This is a final function,it cant be covered.);当试图在子类中对其进行覆盖时:(三)final修饰的成员变量对于一个成员变量而言,当其前面有final对其进行修饰时,这个变量须在定义时对其进行赋值,且不可用任何方式对其进行修改。这就是说,final可以用于定义常量。如果定义final变量时不进行赋初值: 定义final变量:final public double pi=3.1415926;如果试图在函数中重新对其进行赋值:三、staticStatic修饰的成员函数和成员变量被称为类方法和类成员变量。示例用含有static函数和变量的类:public class FORSTATIC static int count=0;int number;static public void StaticPrint()System.out.println(this is a class with static functions and vaniables.);count+;/number=5;System.out.println(count = +count);public void Print()/static int i;count+;number=5;System.out.println(count = +count);System.out.println(number = +number);1)类方法可以直接通过类名进行调用,而不必建立类的对象对其进行调用。Java类的编译器建议直接使用类名调用类方法,当使用对象调用类方法时可能会出现以下情况:2)类成员变量为类的所有对象所共同享有的公共区,当程序运行开始就为其分配内存空间,在程序结束时才进行回收,其间不同的变量都可以对它进行使用修改。且类成员变量可以不经过对象对其进行使用。上面的实例类的类函数中就进行了对类成员变量的使用。在main函数中的使用:FORSTATIC fs1=new FORSTATIC();FORSTATIC fs2=new FORSTATIC();FORSTATIC.StaticPrint();fs1.Print();fs2.Print();运行结果截图:3)类成员变量、类方法、一般成员变量和一般方法的关系类方法可以使用类成员变量;类方法不能使用一般成员变量;一般方法可以使用类成员变量;一般方法可以使用一般成员函数。当试图在类方法中使用一般成员变量时:4)static可用于修饰成员变量而形成类成员函数,但不能用于修饰局部变量。当试图用static修饰局部变量时:附录:原函数一)father.javapackage ts.func;public class father public int pubvan;protected int provan;private int privan;public void pubfunc()System.out.println(this is a public function of father class.);protected void profunc()System.out.println(this is a protected function of father class.);private void prifunc()System.out.println(this is a private function of father class.);public father(int pubvan, int provan, int privan) super();this.pubvan = pubvan;van = provan;this.privan = privan;public void printfa()System.out.println(pubvan+ +provan+ +privan);pubfunc();profunc();prifunc();public int getPrivan() return privan;public void setPrivan(int privan) this.privan = privan;public int getProvan() return provan;public void setProvan(int provan) van = provan;final public void AFinalFunc()System.out.println(This is a final function,it cant be covered.);二)childinsamepa.javapackage ts.func;import ts.func.father;public class childinsamepa extends father public childinsamepa(int pubvan, int provan, int privan) super(pubvan, provan, privan);/ TODO Auto-generated constructor stubpublic void test1()/证明子类可以调用父类的public和protected类型van=9;this.pubvan=19;public void test2()/通过set函数来影响父类的private成员变量van=99;this.pubvan=100;this.setPrivan(101);public void pubfunc()/覆盖System.out.println(this is a public function of this child class.);public void printpubfunc()super.pubfunc();this.pubfunc();/public void AFinalFunc()/三) childindifferentp.javapackage ts.functwo;import ts.func.father;public class childindifferentp extends father public int provan;public childindifferentp(int pubvan, int provan, int privan) super(pubvan, provan, privan);/ TODO Auto-generated constructor stubpublic void profunc()/覆盖和类型修改实验System.out.println(this is the protected function of child class in another pakaege.);System.out.println(-now this is a public function.);public void prifunc()System.out.println(this is the private function of child class in another pakaege.);System.out.println(-now this is a public function.);System.out.println(-this is the evidence of function with same name in child class cant cover private function in father class.);System.out.println(-in the case that private function cant be seen at child class);public void test()/protected变量调用实验van=12;四)AFINALCLASS.javapackage ts.func;import ts.func.father;public final class AFINALCLASS final public double pi=3.1415926;public void pronounce()System.out.println(This is a final class,it cant have child.);public void UseFather()father fa=new father(10,10,10);System.out.println(Now it use the function it can use in class father.);func();fa.pubfunc();/public void UseForTest()/证实final前缀的变量不可改变值/pi=9;/五)DEFFERENTPAKAEGEIMPORT.javapackage ts.functwo;import ts.func.father;public class DEFFERENTPAKAEGEIMPORT public void UseClassFather()father fa=new father(12,12,12);System.out.println(This is a normal class in different package of class father.);System.out.println(Now it use the function it can use in class father.);fa.pubfunc();六)FORSTATIC.javapackage ts.func;public class FORSTATIC static int count=0;int number;static public void StaticPrint()System.out.println(this is a class with static functions and vaniables.);count+;/number=5;System.out.println(count = +count);public void Print()/static int i;count+;number=5;System.out.pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度牛场租赁合同范本-@-1
- 2025年出租车租赁与驾驶员教育培训合作合同范本
- 2025房产公司股权转让及房地产项目后期维护与管理协议
- 2025版生态修复项目专用树苗供应与种植合作协议
- 2025年多智能体任务分配(含答案与解析)
- 2025版涂料施工材料供应与验收合同
- 七年级历史上册教学计划总结
- 第一学期小学德育课外活动方案计划
- 传染病防治知识考试试题及答案
- 部编版一年级语文下册第五单元复习巩固计划
- (2025秋新版)苏教版三年级数学上册全册教案
- 2025玉溪市公安局公开招聘警务辅助人员(120人)笔试参考题库附答案解析
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年
- 南京大学课程《普通地质学》教学大纲及教案
- 2025年临床危急值报告管理制度测试题(附答案)
- 胃癌疼痛的个案护理
- 2025年金钥匙科技知识竞赛试题及答案
- 2025年山西辅警面试题及答案
- 缺血性脑血管病护理常规
- 大学生新生入学心理健康指南
- 2025秋部编版(2024)八年级上册语文上课课件 2.中国人首次进入自己的空间站
评论
0/150
提交评论