java第四课.ppt
《java第四课.ppt》由会员分享,可在线阅读,更多相关《java第四课.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四课第四课包(包(package)n n为了便于管理大型软件系统中数目众多的类,解决类命名为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题冲突的问题,JavaJava引入了包(引入了包(packagepackage)。)。包(包(package)n npackage语句必须是文件中的第一条语句。也就是说,在package语句之前,除了空白和注释之外不能有任何语句。n n如果不加package语句,则指定为缺省包或无名包。n n包对应着文件系统的目录层次结构。n n在package语句中,用“.”来指明包(目录)的层次。编译并生成包编译并生成包n n在当前目录下生成包 javac
2、d.Test.javan n在指定目录下生成包 javac d E:JavaLesson Test.javaimport语句语句n n引入包中的类。import java.io.File;n n引入整个包。import java.io.*;n n在同一包中的类可以互相引用,无需import语句。类的说明符类的说明符n n类的访问说明符(1)public(2)default(不加访问说明符时)n n类的其它修饰符(1)final(2)abstract方法的说明符方法的说明符n n方法的访问说明符方法的访问说明符 (1 1)publicpublic (2 2)protectedprotected
3、(3 3)default(default(不加访问说明符时不加访问说明符时)(4 4)privateprivaten n方法的其它修饰符方法的其它修饰符 (1 1)staticstatic (2 2)finalfinal (3 3)abstractabstract (4 4)nativenative (5 5)synchronizedsynchronized方法的访问控制方法的访问控制publicpublicprotectedprotecteddefaultdefaultprivateprivate同类同类同包同包子类子类通用性通用性不同情形下访问说访问说明符明符方法的访问控制方法的访问控制p
4、ublicpublicprotectedprotecteddefaultdefaultprivateprivate同类同类同包同包子类子类通用性通用性不同情形下访问说访问说明符明符方法的访问控制方法的访问控制publicpublicprotectedprotecteddefaultdefaultprivateprivate同类同类同包同包子类子类通用性通用性不同情形下访问说访问说明符明符方法的访问控制方法的访问控制publicpublicprotectedprotecteddefaultdefaultprivateprivate同类同类同包同包子类子类通用性通用性不同情形下访问说访问说明符明符
5、方法的访问控制方法的访问控制publicpublicprotectedprotecteddefaultdefaultprivateprivate同类同类同包同包子类子类通用性通用性不同情形下访问说访问说明符明符final方法方法n n为了确保某个函数的行为在继承过程中保持不变,为了确保某个函数的行为在继承过程中保持不变,并且不能被覆盖(并且不能被覆盖(overriddenoverridden),),可以使用可以使用finalfinal方方法。法。n n为了效率上的考虑,将方法声明为为了效率上的考虑,将方法声明为finalfinal,让编译器让编译器对此方法的调用进行优化。要注意的是:编译器对此
6、方法的调用进行优化。要注意的是:编译器会自行对会自行对finalfinal方法进行判断,并决定是否进行优方法进行判断,并决定是否进行优化。通常在方法的体积很小,而我们确实不希望化。通常在方法的体积很小,而我们确实不希望它被覆盖时,才将它声明为它被覆盖时,才将它声明为finalfinal。n nclassclass中所有的中所有的privateprivate和和staticstatic方法自然就是方法自然就是finalfinal。抽象方法和抽象类抽象方法和抽象类n n在类中在类中没有方法体的方法,就是抽象方法。没有方法体的方法,就是抽象方法。n n含有抽象方法的类,即为抽象类。含有抽象方法的类,
7、即为抽象类。n n如果一个子类没有实现抽象基类中所有的抽象方如果一个子类没有实现抽象基类中所有的抽象方法,则子类也成为一个抽象类。法,则子类也成为一个抽象类。n n我们可以将一个没有任何抽象方法的类声明为我们可以将一个没有任何抽象方法的类声明为abstractabstract,避免由这个类产生任何的对象。避免由这个类产生任何的对象。n n构造方法、静态方法、私有方法、构造方法、静态方法、私有方法、finalfinal方法不能被方法不能被声明为抽象的方法。声明为抽象的方法。native方法方法n nnativenative方法是用户在方法是用户在JavaJava中可以使用,但不能编写的方中可以使
8、用,但不能编写的方法。法。n nJNI(Java Native Interface)JNI(Java Native Interface),它允许它允许JavaJava虚拟机虚拟机(JVM)(JVM)内部内部运行的运行的JavaJava代码能够与用其它编程语言代码能够与用其它编程语言(如如C C、C+C+、汇编语言汇编语言)编写的应用程序和库进行互操作。编写的应用程序和库进行互操作。n nJNIJNI最大的好处是它没有对底层最大的好处是它没有对底层JavaJava虚拟机的实现施加虚拟机的实现施加任何限制,因此,任何限制,因此,JavaJava虚拟机厂商可以在不影响虚拟虚拟机厂商可以在不影响虚拟机
9、其它部分的情况下添加对机其它部分的情况下添加对JNIJNI的支持。程序员只需的支持。程序员只需编写一种版本的本地编写一种版本的本地(Native)(Native)应用程序和库,就能够应用程序和库,就能够与所有支持与所有支持JNIJNI的的JavaJava虚拟机协同工作。虚拟机协同工作。n nJNIJNI可以理解为可以理解为JavaJava和本地应用程序之间的中介。和本地应用程序之间的中介。接口接口n n接口中所有的方法都是public abstract。n n在接口中声明方法时,不能使用native、static、final、synchronized、private、protected等修饰符
10、。n n和public类一样,public接口也必须定义在与接口同名的文件中。接口接口n n接口中可以有数据成员,这些成员默认都是public static final。Math.javainterface Mathdouble PI=3.1415926;class Arithmetic implements Mathdouble roundArea(double radius)return PI*radius*radius;class Studentpublic static void main(String args)Arithmetic a=new Arithmetic();System
11、.out.println(a.roundArea(3);System.out.println(Math.PI);/okSystem.out.println(Arithmetic.PI);/okSystem.out.println(a.PI);/ok接口接口n n一个接口可以继承自另一个接口。n nJava中不允许类的多继承,但允许接口的多继承。Sofa.javainterface Sittablevoid sit();interface Lievoid sleep();interface Chair extends Sittableinterface Sofa extends Sittable
12、,Lie接口接口n n在Java中,一个类可以实现多个接口。n n一个类在继承另外一个类的同时,可以实现多个接口。Sofa.java/实现多个接口interface Sittablevoid sit();interface Lievoid sleep();class Sofa implements Sittable,Liepublic void sit()public void sleep()Sofa.java/在继承类的同时,实现多个接口interface Sittablevoid sit();interface Lievoid sleep();interface HealthCarevoi
13、d massage();class Chair implements Sittablepublic void sit();class Sofa extends Chair implements Lie,HealthCarepublic void sleep();public void massage();内内部类部类n n在一个类中定义另外一个类,这个类就叫做内部类或在一个类中定义另外一个类,这个类就叫做内部类或内置类内置类 (inner class)(inner class)。n n内部类可以让我们将逻辑上相关的一组类组织起来,内部类可以让我们将逻辑上相关的一组类组织起来,并由外部类并由外部
14、类(outer class)(outer class)来控制内部类的可见性。来控制内部类的可见性。n n当我们建立一个当我们建立一个inner classinner class时,其对象就拥有了与外部时,其对象就拥有了与外部类对象之间的一种关系,这是通过一个特殊的类对象之间的一种关系,这是通过一个特殊的this this referencereference形成的,使得内部类对象可以随意的访问外形成的,使得内部类对象可以随意的访问外部类中所有的成员。部类中所有的成员。class Outerprivate int index=100;void print()Inner i=new Inner()
15、;i.print();class Innervoid print()System.out.println(index);class Testpublic static void main(String args)Outer o=new Outer();o.print();othisimaino.printi.printthis栈内存堆内存Outer类对象Inner类对象Outer.this内部类内部类n n在方法中定义的内部类,如果要访问方法中定义的本在方法中定义的内部类,如果要访问方法中定义的本地变量或方法的参数,则变量必须被声明地变量或方法的参数,则变量必须被声明finalfinal。n
16、n内部类可以声明为内部类可以声明为privateprivate或或protectedprotected;还可以声明为还可以声明为abstractabstract或或finalfinal。n n内部类内部类可以声明为可以声明为staticstatic的,但此时就不能再使用外部的,但此时就不能再使用外部类的非类的非staticstatic的成员变量和非的成员变量和非staticstatic的成员方法;的成员方法;n n非非staticstatic的的内部类内部类中的成员不能声明为中的成员不能声明为staticstatic的,只有的,只有在顶层类或在顶层类或staticstatic的内部类中才可声明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 第四
限制150内