Java經常使用的包java
java的核心類都放在java包以及其子包下,Java擴展的許多類都放在javax包以及其子包下。這些實用類也就是API(應用程序接口),oracle公司按這些類的功能分別放在不一樣的包下。經常使用包有下面這些。sql
java.lang:這個包下包含Java語言的核心類,如String、Math、System和Thread類等,使用這個包無需使用import導入,系統會自動導入這個包下的全部類。
java.util:包含Java的大量工具類/接口和集合框架類/接口,例如Arrays和List、Set等。
java.net:包含一些Java網絡編程相關的類/接口。
java.text:包含一些Java格式化相關的類。
java.io:包含一些Java輸入/輸出編程相關的類/接口。
java.sql:包含Java進行JDBC數據庫編程的相關類/接口。
java.awt:包含抽象窗口工具集的相關類/接口,用於構建圖形用戶界面GUI程序。
java.swing:包含Swing圖形用戶界面編程的相關類/接口,可用於構建平臺無關的GUI程序。數據庫
類的繼承編程
繼承是面向對象的三大特徵之一,也是實現軟件複用的重要手段。Java的繼承具備『單繼承』的特色,『一個子類只能有一個直接父類』。網絡
修飾符 class SubClass extends SuperClass{}oracle
『若是一個Java類在定義時沒有顯式指定這個類的直接父類,則默認的父類是java.lang.Object類,因此java.lang.Object是全部類的父類』框架
this(ele1,...)能夠實如今構造器中調用另外一個構造器,必須做爲構造器執行的第一條語句。工具
方法重載、方法重寫/覆蓋this
方法重寫規則:「兩同兩小一大」:spa
方法名相同、形參列表相同;
子類方法返回值類型應比父類方法返回值類型更小或者相等,子類方法聲明拋出的異常類型比父類方法聲明拋出的異常類型更小或者相同;
子類方法的訪問權限應比父類方法的訪問權限更大或相同;
要麼都是類方法,要麼都是實例方法;
子類方法中能夠經過super或者父類類名調用,訪問父類中被覆蓋的方法;父類方法具備private訪問權限的,對子類是隱藏的,所以子類中沒法發訪問該方法,沒法重寫。
『任何Java對象,最早執行的老是java.lang.Object類的構造器』
『多態』因爲編譯時類型與運行時類型不一致
引用變量的強制轉換
引用類型的強制轉換隻能在具備繼承關係的兩個類型之間進行,若是兩個沒有任何繼承關係的類型,則沒法進行類型轉換,不然編譯就會出現錯誤;
試圖把一個父類的是類轉換成子類類型,則這個對象必須其實是子類實力才行(即編譯時類型是父類類型,而運行時類型是子類類型),不然將在運行時引起ClassCastException異常。
instanceof運算符
運算符的前一個操做數一般是一個引用類型變量,後一個操做數一般是一個類、接口:判斷前面的對象是不是後面類、子類、實現類的實力,若是是返回true,不然返回false。前面操做數的編譯時類型要麼與後面類型相同,要麼有父子繼承關係,不然會引發編譯錯誤。
類的訪問控制