1. 程式人生 > >Java面向物件的一些理解重點和難點

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)。原生資料型別(基本資料型別)傳值傳的就是值本身,而引用型別傳值傳的是地址(值)。