package mybole; package語句必須是第一條語句;
package mybole;
class Test
{
publicstatic void main(String [] args)
{
System.out.println("packagetest");
}
}
新建一個包,編譯java Test.java生成Test.class
執行java Test,這是錯誤的報錯
因爲Test現在屬於某一個包,應該是java mybole.Test
新建一個名爲mybole的文件夾,把字節碼文件放進文件夾,然後執行java mybole.Test
就成功了!“.”也可以換成”/”,但大部分用”.”;
在編譯的時候加上-d 會遵照源文件中包名生成指定的目錄文件,
比如javac –d . Test.java (.表示在當前目錄生成)
比如 package cn.mybole在編譯的時候如果加上-d就會在指定目錄創建cn文件夾,在cn文件夾下創建mybole文件夾,再在mybole文件夾下生成字節碼文件。
類範文修飾符:
Public和Default
同一個包中的類可以相互相互訪問,但是隻能訪問另外一個包的public類,缺省的類是在包外面是無法訪問的。缺省類只能在同一個包中其他類訪問。
Final:
最終類,如果在一個類的前面加上final,那麼這個類不能被繼承public final classname
類方法成員訪問修飾符:
同一個類中的各種成員可一相互訪問
兩個類如果處於同一個包中,則可以相互訪問public,protected,default這三種修飾的成員函數,但是private不能夠。
如果兩個類屬於不同包中不同類,則子類可以訪問父類的public和protected類。
如果兩個類屬於不通報中不同類,且不是子類與父類的關係,那麼就只能相互訪問public成員;
Abstract:
抽象方法,表明此方法不能再子類中被覆蓋,抽想法方法所在的類必須是抽象類,抽象類不能被實例化。
如果一個類繼承了一個抽象類,那麼必須要實現抽象函數,否則必須聲明爲抽象類。
我們可以將一個沒有任何抽象方法的類聲明爲abstract,避免由這個類產生任何的對象。
抽象方法就是沒有左右大括號,實現就是有左右大括號了,括號裏面可以爲空。
垃圾回收機制是一個優先級較低的一個線程,System.gc是調用垃圾收集器;
垃圾收集之前會調用Object類的方法finalize,此方法可以被重載,是一個靜態的成員函數
接口
接口中所有方法都是抽象的方法public abstract。不用顯示聲明就是。
派生類要覆蓋子類的方法時候要有更高的權限,至少要等同,而不能去較低
接口和接口實現類就是這麼一種關係。
如果實現一個接口,要麼全部實現,要麼聲明爲抽象類。
接口中所有的方法都是public abstract。
在接口中聲明方法時,不能使用native、static 、final 、synchronized 、private 、protected等修飾符。
接口中可以有數據成員,這些成員默認都是public static final。
在Java中,一個類可以實現多個接口。
一個類在繼承另外一個類的同時,可以實現多個接口
Class classname1 extends interface1 implementsclassname2