欢迎来到天天文库
浏览记录
ID:39684215
大小:670.50 KB
页数:52页
时间:2019-07-09
《访问控制、继承、多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章访问控制、多态、继承、包和接口一.访问控制二.重载三.继承四.多态五.包和接口(一)访问控制——类的访问控制同一个java程序文件中的所有类都在同一个包内多个java文件若声明在同一个pakage下也属于同一个包处于同一个包内的类是彼此可见的(即可以直接互相调用的),而不同包之间的类,一般是不可见的,只有声明为public的类才可以被访问和调用。类1类2类3类4是类1的子类包1包2(一)类的访问控制//Chp5.javapackageacl;importjava.lang.*;classArea{publicdoublelon,wid;publicdoublearea
2、(doublex,doubley){lon=x;wid=y;returnx*y;}}classTest{voidfun(){Chp5cc=newChp5();Areaaa=newArea();}}publicclassChp5{publicstaticvoidmain(Stringargs[]){Areass=newArea();doublez=ss.area(1,2);}}Chp5.java,C3.java位于同一个工程下面,但不属于一个包//C3.javaimportacl.*;publicclassC3{Chp5ss5;//Areass;//acl.Area类不是pu
3、blic的,无法从外部包对其访问}1.缺省类访问控制——只能被同一个包内的类所使用如Area2.Public类:公共类,可以在任何其它类中(无论是否在同一个包)使用,如Chp53.但如是不在同一个包,要import该包或类Java规定,一个java文件中有且仅有一个与java文件名同名的public类(二)成员的访问控制问题:某类对其它类整体是可见的如某类默认的访问控制对同一包内的类或public类被其它包内的类访问该类所有数据成员和成员方法也都可见了么?——还取决与该类的成员的修饰符成员的最终访问控制=类的可见性+成员的可见性成员的访问控制public公有的private
4、私有的protected保护的(1)public访问控制只有public类的public数据成员/方法才是任何类都可以访问的建议:若希望某个类作为公共工具供其它的类和程序使用,应把该类和类内的某个方法声明为publicpublic类+public方法packagejava.lang;publicfinalclassString{publicString(){}publicStirngtoUpperCase(){…}}//Chp5.javapackageacl;importjava.lang.*;classArea{publicdoublelon,wid;publicdoub
5、learea(doublex,doubley){lon=x;wid=y;returnx*y;}}classTest{voidfun(){Chp5cc=newChp5();Areaaa=newArea();}}publicclassChp5{publicstaticvoidmain(Stringargs[]){Areass=newArea();//私有类ss可以被同一包中的其它类使用doublez=ss.area(1,2);}}以下Chp5.java,C3.java两个文件位于同一个工程下面,但不属于一个包privatedoublelon,wid;//System.out.p
6、rint("ss.lon"+ss.lon);//错!若lon为私有的,类外不能访问(2)private访问控制private的数据成员和方法只能被该类自身访问和修改,不能被其它类和子类所访问classP1{privateintn=9;//私有数据成员nintnn;//默认数据成员P1(){nn=n++;}//可以被该类的对象自身访问和修改voidma(){System.out.println(“n=”+n);//可以被该类的对象自身访问}}publicclassc5_3extendsP1{publicstaticvoidmain(String[]args){P1m1=new
7、P1();m1.ma();//对!可引用P1类自身的成员方法System.out.println("m1.nn="+m1.nn);//System.out.println("m1.n="+m1.n);//错,不能引用父类的私有成员}}c5_3.java用private修饰的数据成员不能被子类访问(3)protected访问控制(3)protected访问控制主要用于继承,特别是允许其它的子类可以访问父类的时候Protected可以被三种类引用:该类自身——同private——类外对象不能同一个包内的其它类其它包内的
此文档下载收益归作者所有