java面向對象

1、.點操作符

      作用:引用一個類的成員變量或者成員方法

      使用:先創建類的實例對象,對象.的方式調用

2、構造函數

      給類型不一的成員初始化成員值

      構造函數沒有返回值

      通過new關鍵字來調用構造函數,並且只能被調用一次。一個對象被初始化以後就不能再調用該對象的構造函數

      構造函數不能被繼承

      有參構造函數會屏蔽默認無參構造函數

3、方法重載和方法複寫

      重載,同一個類中,參數列表不同,返回值不同

      複寫(重寫),不同類型中,只有方法體不同,子類用@Override標誌,表示重寫父類方法。

4、信息封裝和隱藏

      給私有變量設置setter和getter值

5、用類名定義一個變量時,定義的只是一個引用,外面通過這個引用來訪問這個類裏面的屬性和方法。其實,java中       提供了一個內部對象this,永遠指向當前對象。在繼承關係中,用super訪問當前對象的父類。

6、組合和繼承

      IS-A關係,即一個類需要向另一個類暴露其所有的方法,用繼承。

      HAS-A關係,用組合,即裝飾者模式。

7、java中只支持單繼承

8、所有類的父類java.lang.Object

      Object類定義和實現了java類都需要的一些通用行爲,在多線程和垃圾自動收集中用到。

9、多態性

      可替換性:

      子類具有父類的所有屬性和行爲,因此需要使用父類的實例的時候,可以用子類代替。

      向上轉型和向下轉型:

       將一個子類的實例賦值給父類的引用稱爲向上轉型,向上轉型總是安全的,自動發生的。

       將一個父類引用轉型爲最初類型,稱爲向下轉型。需要強制性轉換,不合理的強制轉換在編譯時不會報錯,運行        時纔會報錯。

10、instanceOf操作符:判斷一個一個實例是否真的屬於一個類型

anObject instanceof aClass
11、抽象類和接口
    含有至少一個抽象方法的類稱爲抽象類,抽象類不能被實例化。抽象方法必須被子類實現
    接口中的所有方法都是抽象方法,只能有static final類型的數據成員,且不許給出初值。接口中的成員變       量可以在子類中重新賦值。
    單繼承,可以實現多個接口。
    抽象類可以有默認行爲,接口不可以有,想要有默認行爲的話需要委託。
    實現接口必須實現接口中的所有方法,繼承抽象類必須繼承抽象類中的所有抽象方法。
12、java中定義了21個包,常用的有如下幾個:
    java.lang
    java.util
    java.io
    java.awt
    java.awt.event
    java.net
    java.applet
    java.sql
    java.rmi
    java.security
13、包的使用(裝載自己已編譯好的包)
    a、在需要引用的類名前加上包名
    b、用import引入包中的類
    c、用import引用整個包*
    java.lang無需顯示調入,編譯器自動調入。
14、默認繼承Object類
15、Object類常用方法:
    Object構造方法;
    public boolean equals(Object object) //對象比較
    public int hashCode() //取得hash碼
    public String toString() //對象打印時使用
16、==基本類型比較值,引用類型比較是否是同一個對象。
17、Object中的equals方法只用來比較是否是同一個對象,只能比較引用類型。
    對於File、String、Data、包裝類不需要比較對象,可以進行重寫
18、toString()方法默認返回類名和哈希碼值的十六進制形式。其他類型數據和String類型進行連接時會自動調用toString()方法
19、static關鍵字是爲了實現對象之間重複屬性的數據共享。靜態成員變量可以通過類名.直接訪問,也可以通過對象.進行訪問(非靜態函數可以訪問靜態成員,靜態成員先於對象存在)。
20、static特點:
   隨着類的加載而加載;先於實例對象存在;被所有實例對象所共享;靜態只能訪問靜態。
21、靜態變量和實例變量的區別:
    靜態變量存在於內存中的方法區中,實例變量存在於堆內存中。
22、import java.util.Calendar;
    import java.util.Date;
    //初識化日曆對象
    Calendar cal = Calendar.getInstance();//0表示1月,1表示2月
    //Calendar和Date的相互轉化
    Date date = cal.getTime();
    cal.setTime(date);
23、格式化輸出時間:
    Date date = new Date();
    SimpleDateFormat sd = new SimpleDateFormat("yy-MM-dd : hh:mm:ss");
    sd.format(date);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章