1.      第三讲

1.1.1.     包

        package语句必须是文件中的第一条语句。也就是说,在package语句之前,除了空白和注释之外不能有任何语句。

        如果不加package语句,则指定为缺省包或无名包。

        包对应着文件系统的目录层次结构。

        在package语句中,用“.”来指明包(目录)的层次。可在当前目录生成相应的目录层次(根据class文件包的层次) 添加路径:set classpath=%classpath%;D:/cn/mybole;

        在当前目录下生成包

    javac –d . Test.java

        在指定目录下生成包

Javac –d E:/JavaLesson Test.java

Javac –d . *.java(编译当前目录下所有的java文件)

1.1.2.     Import语句

        引入包中类

import java.io.File;

        引入整个包。

    import java.io.*;

        在同一包中的类可以互相引用,无需import语句

 

 

1.1.3.     类的说明符

        类的访问说明符

                    (1)public

                    (2)default(不加访问说明符时)

        类的其它修饰符

                    (1)final

                    (2)abstract

 

1.1.4.     方法的说明符

        方法的访问说明符

                    (1)public

                    (2)protected

                    (3)default(不加访问说明符时)

                    (4)private

                           

        方法的其它修饰符

                    (1)static

                    (2)final

n         为了确保某个函数的行为在继承过程中保持不变,并且不能被覆盖(overridden),可以使用final方法。

n        为了效率上的考虑,将方法声明为final,让编译器对此方法的调用进行优化。要注意的是:编译器会自行对final方法进行判断,并决定是否进行优化。通常在方法的体积很小,而我们确实不希望它被覆盖时,才将它声明为final。

n        class中所有的private和static方法自然就是final

                    (3)abstract(抽象类和抽象方法)

n         在类中没有方法体的方法,就是抽象方法。

n         含有抽象方法的类,即为抽象类。

n         如果一个子类没有实现抽象基类中所有的抽象方法,则子类也成为一个抽象类。

n         我们可以将一个没有任何抽象方法的类声明为abstract,避免由这个类产生任何的对象。

n        构造方法、静态方法、私有方法、final方法不能被声明为抽象的方法。

                    (4)native

n         native方法是用户在Java中可以使用,但不能编写的方法。

n         JNI(Java Native Interface),它允许Java虚拟机(JVM)内部运行的Java代码能够与用其它编程语言(如C、C++、汇编语言)编写的应用程序和库进行互操作。

n         JNI最大的好处是它没有对底层Java虚拟机的实现施加任何限制,因此,Java虚拟机厂商可以在不影响虚拟机其它部分的情况下添加对JNI的支持。程序员只需编写一种版本的本地(Native)应用程序和库,就能够与所有支持JNI的Java虚拟机协同工作。

n        JNI可以理解为Java和本地应用程序之间的中介。

                    (5)synchronized

 

 

 

1.1.5.     对象的销毁(JVM垃圾回收器的演示)

System.gc();显示调用垃圾回收

1.1.6.     Java接口

        接口中所有的方法都是public abstract。

        在接口中声明方法时,不能使用native、static 、final 、synchronized 、private 、protected等修饰符。

        和public类一样,public接口也必须定义在与接口同名的文件中

        接口中可以有数据成员,这些成员默认都是public static final

        一个接口可以继承自另一个接口。

        Java中不允许类的多继承,但允许接口的多继承

        在Java中,一个类可以实现多个接口。

        一个类在继承另外一个类的同时,可以实现多个接口