1、包
package mybo;
mybo包下的類在硬盤上都存在mybo的文件夾下,執行類時需要確定文件夾路徑。
2、類的說明符
類的訪問說明符:public default
public的類可以被包外的包裏的類訪問,default的類只能被同一包下的類訪問。
類的其他修飾符:final ,abstract
final的類不能被繼承。
3、方法的說明符
public ,protected,default ,private
同類:這四類方法都可以進行訪問
同包不同類:只有private的方法不能被訪問
不同包但是之間有父子關係的:只有public,protected的方法纔可以訪問
通用的,不同包也不存在繼承關係的:只有public的可以訪問
其他的方法修飾符:
static final native abstract ,synchronized
final的方法:爲了確保某個方法在被繼承過程中被子類覆蓋或者修改,那就聲明爲final
class中的所有的private和static方法都是final的。
4、抽象方法和抽象類
抽象方法沒有函數體。
抽象類不能進行實例化對象。
5、垃圾回收
finalize()函數,垃圾收集器在執行前會調動此函數,一般垃圾回收再虛擬機中以低線程執行,只要當內存感覺不夠的時候纔會允許垃圾收集器。
6、接口
接口的方法都是默認的public abstract的,所以我們在實現一個接口時,需要用public聲明。
在接口中聲明方法時,不能使用native static final private protected synchronized.
接口可以用public default修飾
接口可以用數據成員,這些數據成員默認是public static final 即共有的靜態常量。
7、內部類
在一個類中定義另一個類叫做內部類,
內部類可以將邏輯上相關的類串聯起來。並由外部類控制內部類的可見性。
內部類字節碼的文件名:外部類名¥內部類名組成
當我們創建了一個內部類,其對象就擁有了與外部類對象的一直關係,這是通過一直特殊的this reference形成的。
(使用new創建的對象保存在堆內存中,其引用保存在棧內存中,)
內部類可以訪問外部類的所有的成員,主要有你對象中保存了外部類的this對象。
內部類訪問自身的成員變量:this.X,訪問外部類的成員變量:O.this.X(o是外部類,y是內部類名)
內部類不能用new 去直接創建,而是o.new y() (o=new O())
內部類的修飾內同於類中的方法(public,protect default private。。。)
當內部類被定義爲static時,我們就不需要聲明外部類的對象了,就可以直接訪問內部類,同時內部類不能訪問外部類的非靜態方法和變量了。
沒有用static修飾內部類時,其不能有靜態的方法。
內部類的繼承: 派生類在產生對象時會去先調用父類的構造函數,這就需要內部類的對象,而內部類的對象需要先產生外部類,從而建立內部類到外部類的引用關係,
故派生類的構造函數需要傳入外部類的對象,然後通過外部類對象.super()方式來建立從內部類對象到指定外部類的引用關係,例如:
public class test extends outer.inner{
/**
* @param args
*/
test(outer io)
{
io.super();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
outer ou=new outer();
test ts=new test(ou);
}
}
8、異常處理
對於一般可能存在發生異常的方法,通常在方法後面throws exception 來拋出異常。而在調用方法時拋出的異常需要去捕獲否則編譯出錯,當然也可以再次拋出將異常拋給其他方法。
語法:try/catch/catch..../finally,finally的語句無論有沒有發生異常都會執行。
System.exite