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);