Java面向物件的一些理解重點和難點
java資料型別圖: ┏數值型━┳━整數型:byte short int long ┏基本資料型別━━┫ ┗━浮點型:float double ┃ ┣字元型:char 資料型別╋ ┗布林型:boolean ┃ ┏類(class)(可以是我們建立的,也可以是java庫中的類(Object 類,String類) ) ┗引用資料型別━━╋介面(interface)(可以是我們建立的,也可以是java庫中的介面(List<E>:列表,Map ) ) ┗陣列(array)
總結:首字母小寫的都是基本資料型別。首字母大寫的都是引用型別
java資料型別圖的概念及解釋:點選開啟連結
一.new 關鍵字的解釋
A a = new A();
new 關鍵字在生成物件時完成了三件事情:
a) 為物件開闢記憶體空間。
b) 呼叫類的構造方法。
c) 將生成的物件的地址返回給a。
二.成員變數與區域性變數
概念:屬性需要定義在類中,又叫做成員變數;而定義在方法中的變數叫做區域性變數。
成員變數與區域性變數的聯絡與區別:
a) 無論是成員變數還是區域性變數,使用前都需要宣告(定義)。
b) 對於區域性變數來說,使用前必須要初始化;對於成員變數來說,使用前可以不初 始化。如果沒有初始化成員變數就開始使用,那麼每個型別的成員變數都有一個 預設的初始值
i. byte、short、int、long 型別的初始值為 0
ii. float、double 型別的初始值為 0.0
iii. char 型別的初始值‘\u0000’
iv. boolean 型別的初始值為 false
三.引用型別
引用型別(reference type)指向一個物件,不是原始值,指向物件的變數是引用變數。
在java裡面除去基本資料型別的其它型別都是引用資料型別,自己定義的class類都是引用型別,可以像基本型別一樣使用。
示例如下:
public
class MyDate {
private
int day = 8;
private
int month = 8;
private
int year = 2008;
private
MyDate(int day, int month, int year){...}
public
void print(){...}
}
public
class TestMyDate {
public
static void main(String args[]) {
//MyData就是引用型別,而today變數就是一個引用型別的變數
MyDate
today = new MyDate(23, 7, 2008);
}
}
java中的引用型別及引用傳遞的概念:點選開啟連結
注意:jAVA中進行方法的引數傳遞時,無論是原生資料型別還是引用資料型別,引數傳遞方式統一是傳值(pass by value)。原生資料型別(基本資料型別)傳值傳的就是值本身,而引用型別傳值傳的是地址(值)。