package和类的相关使用

来源:互联网 发布:mac安装visual studio 编辑:程序博客网 时间:2024/06/01 07:39

 

包下快速编译命令: javac *.java//编译当前目录下的java文件

package语句必须是文件中的第一条语句。也就是说,在package语句之前,除了空白和注释之外不能有任何语句。
如果不加package语句,则指定为缺省包或无名包。
包对应着文件系统的目录层次结构。
在package语句中,用“.”来指明包(目录)的层次。

运行方法:

在d:/有层次包cn.mybole的test类
则 有命令    java   cn.mybole.test(类名)
其中,classpath=%classpath%;d:/;(在d:下面运行没有用,要classpath在d:下运行才有用)

不能直接在d:/cn/mybole/目录下直接运行java test或java cn.mybole.test,因为test是包下的类且在d:/下

 

在当前目录下生成包
    javac –d . Test.java(-d 自动根据Test.java的package结构生成目录)
在指定目录下生成包
    javac –d E:/JavaLesson Test.java

 

java.lang包是自动导入的

系统类地址:C:/Sun/SDK/jdk/jre/lib/rt.jar(用winrar)

 

引入包中的类。//引用地址:C:/Sun/SDK/jdk/jre/lib/rt.jar(用winrar)
    import java.io.File;
使用:File f = new File();//File是类名,不是包
引入整个包。
    import java.io.*;
使用:io.File f = new io.File();//File是类名,不是包
在同一包中的类可以互相引用,无需import语句。
如果不使用import则
使用:java.io.File f = new java.io.File();

类要想被其它程序引用,则被引用的类需要声名为public,缺省的类只能在同一个包中被访问

final类为最终类,不能被继承

 

                        类方法的访问控制

       public      protected     default    private

同类    OK              OK          OK        OK                          

同包    OK              OK          OK                                        

子类    OK              OK                                      

通用性  OK

通用性指:不同包下类的方法(没有标示OK的,不能访问)                                                 

 

final方法

为了确保某个函数的行为在继承过程中保持不变,并且不能被覆盖(overridden),可以使用final方法。
为了效率上的考虑,将方法声明为final,让编译器对此方法的调用进行优化。要注意的是:编译器会自行对final方法进行判断,并决定是否进行优化。通常在方法的体积很小,而我们确实不希望它被覆盖时,才将它声明为final。
class中所有的private和static方法自然就是final。

 

abstract方法和类

abstract方法只能在abstract类中声名,

它没有函数体: abstract void abc(...);

abstract class abc{...}

abstract类不能被实例化, abc example = new abc();是错误的

继承后,如果abstract方法没有重写,则仍然是abstract性质的

native 类(略,与dll有关) 

 

java的垃圾收集器只有在内存不足时,才被调用,且自动运行,但是运行前会调用Object下的finalize,

手动调用垃圾收集器System.gc();//回收没有补引用的类