欢迎来到天天文库
浏览记录
ID:39750806
大小:341.01 KB
页数:32页
时间:2019-07-10
《面向对象高级特性(上)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五讲面向对象高级特性(上)主要内容继承包访问限定词Object类final关键字继承的基本概念1、继承的作用:增强了代码的复用性。2、Java使用extends关键字定义继承。3、Java只支持单继承,不支持多继承。4、Java支持多层继承。继承中的方法重写子类可以对从父类继承来的方法进行重写,重写过程中需要注意以下几点:(1)重写的方法应该与被重写的方法具有相同的方法名、参数列表、返回类型。(2)重写的方法不应该比被重写的方法具有更严格的访问权限。super关键字1、在Java中使用super关键字引用父类的成员。2、还可以通过s
2、uper(参数列表)引用父类的构造方法。继承中的构造方法1、构造子类对象必须先调用父类的构造方法。2、可以在子类的构造方法中,通过this(参数列表)调用同类的构造方法;通过super(参数列表)调用父类的构造方法3、在子类的构造方法中,super(参数列表)必须放在第一行继承中的构造方法4、如果子类的构造方法中没有显式调用父类的构造方法,那么默认调用父类不带参数的构造方法。5、子类能够继承父类的成员变量和成员方法,但是不能继承父类的构造方法。包为了类文件管理的方便以及解决命名冲突,人们引入“包”这个概念。包是按照目录存放的,在程序中
3、以“.”分隔。Java编译器在编译时将程序里出现的包名生成一个目录,例如包a.b.c中的类存放在abc目录中。package语句package语句用来指定包名,一般形式如下:package包名1[.包名2[.包名3…]];package语句必须写在Java源文件的第一条,而且只能有一条。缺省package语句的包,为无名包。package语句编译包含package语句的java源文件,使用如下格式:javac–d包存放的目录文件名.java例如,javac–d.Person.java//将类文件放到当前目录下javac-dc:m
4、yPackagePerson.java//将类文件放到c:myPackage目录下执行类名必须写全名:包名+类名,如:javap1.first.Personclasspath环境变量1.classpath的作用:java虚拟机从classpath设置的路径中寻找指定的类。2.设置classpath环境变量的格式:setclasspath=环境变量的值如,setclasspath=.;c:myPackage;classpath环境变量3.若需要的包已经打包成一个文件package.jar,放在某个目录如c:temp中,则class
5、path应设置到文件名:setclasspath=c:temppackage.jar;.4.如果从不同地方下载了多个包来使用,文件名各不相同,或放在不同目录中,设置classpath时可用分号隔开:setclasspath=.;c:pp1;e:pp3a.jar;import语句1.import语句用来引入包中的类。2.import语句的数量没有限制。import语句必须放在程序开头;如果程序中有package关键字,则必须放在package之后一行,class之前一行。3.import语句的格式:importmyJava.i
6、o.C;//引入myJava.io中的类CimportmyJava.io.*;//引入myJava.io中所有的类,不包括子类4.Java编译器为所有程序自动引入包java.lang。Jdk中常见包java.lang:包含java语言的核心类java.awt:包含了构成抽象窗口工具集的类java.io:包含能提供输入/输出功能的类java.util:包含java中的常用工具包java.net:包含与网络相关的类访问限定词限定词同一类中同一包中不同包中的子类不同包中的非子类private√无限定词√√protected√√√public
7、√√√√private限定词private成员只能被同类中的成员访问:packagep1;classFirst{privatevoidfunc1(){}voidfunc2(){func1();//private成员能够被同类中的方法所访问}}classA{publicstaticvoidmain(String[]args){newFirst().func1();//编译错,private成员不能被其他类访问}}无限定词不加限定词的成员属于默认的访问状态,可以被这个类本身或者与类同在一个包内的其它类访问packagep1;classFi
8、rst{voidfunc1(){}}classA{publicstaticvoidmain(String[]args){newFirst().func1();//编译正确}}无限定词不加限定词的成员不能被不同包中的子类使
此文档下载收益归作者所有