java基礎學習——對象和類
對象和類
首先說一下結構化程序的缺陷:
(1)缺乏對數據的封裝
(2)數據和方法的分開
抽象數據類型:將不同類型的數據的集合組成一個整體來描述一個新的事物
一,什麼是類?
1.現實世界中是由對象組成的,基於這些對象,抽出了類。
2.類:類型,類別,代表一類個體,對象:獨立的個體。
3.類是一種數據類型(引用類型)。
4.類中可以包括:
(1)所有對象所共有的屬性——變量
(2)所有對象所共有的方法——方法
5.一個類可以創建多個對象,同一個類創建的對象,結構相同,數據不同。
6.類是對象的模板,對象是類的實例。
二,定義類的成員變量
1.類的定義包括”成員變量“的定義和”方法“的定義,其中成員變量用於描述改類型對象共同的數據結構。
2.java語言中,類的成員變量的定義可以使用如下語法:
class 類名 {
成員變量類型 變量名稱;
}
3.對象創建後,其成員可以按照默認的方式初始化。
4.初始化對象成員變量時,器默認值的規則如下所示:
成員變量類型 默認初始值
數值類型(byte,short,int,long,double,float) 0
boolean false
char型 /u0000
引用類型 null
三,定義類的方法
1.類的方法:用於描述對象的行爲,封裝對象的功能。
2.java語言中可以按下列方式定義類的方法
class 類名 {
修飾詞 返回值類型 方法名稱(參數列表) {
方法體 ;
}
}
四,使用new關鍵字創建對象
1.類定義完成後,可以使用new關鍵字創建對象,創建對象的過程成爲實例化。
2.new運算的語法爲: new 類名();
3.引用類型變量:爲了能夠對實例化的對象進行訪問控制,需要使用一個特殊的變量——引用。
(1)引用類型變量可以存放該類對象的地址信息,通常稱爲”指向該類的對象“;當一個引用類型變量指向該類的對象時,就可以通過這個變量對對象實施訪問。
(2)除8種基本類型外,用類,接口,數組等聲明的變量都稱之爲引用類型的變量,簡稱”引用“;
五,引用類型變量的賦值
1.引用類型變量存儲的是對象的地址信息,相同類型的引用變量之間也可以相互賦值。
2.引用類型變量之間的賦值不會創建新的對象,但有可能會使兩個以上的引用指向同一個對象。
Cell c = new Cell();
類 引用 對象
class Cell{
int row;
int col;
}
Emp el = new Emp();
Emp e2 = e1; //將e1的值(對象的地址信息)賦給e2,e2和e1指向相同的對象
六,null和nullPointerException
1.對於引用類型變量,可以對其賦值爲null,null的含義爲”空“,表示指向任何對象。
例,Emp emp = null; //引用emp中的值爲null,沒有指向任何對象
emp = new emp(); // 用emp指向Emp對象。
2.當一個引用的值爲null的時候,如果通過引用訪問對象或成員變量或者調用方法是不合邏輯的,此時會產生nullPointerException
例:Jframe frame = null ;
frame.setSize(200,300);
"空"代表不再指向任何對象。
七,方法的前面與重載
1.方法的簽名包含兩個方面,方法名和參數列表。
2.一個類中,不可以有兩個方法的簽名完全相同,哪一個類中不可以有兩個方法的名字和參數列表完全一樣。
3.如果一個類的兩個方法只是方法名相同而參數列表不同,即爲重載,是可以的。
4.在java語言中,允許多個方法的名稱相同,但參數列表不同,稱之爲方法的重載。
5.編譯器在編譯時會根據簽名來綁定調用不同的方法,我們可以把重載的方法看成是完全不同的方法,只不過方法名相同而已。
6.Java中重載時,方法名相同,只能爲參數類型不同,與返回值,參數名無關。
八.構造方法。
1.常常用於給成員變量賦初值。
2.與類名相同,沒有返回值,也不能寫void。
3.在創建對象時被自動調用。
4.若自己不寫構造方法,則編譯器默認提供一個無參構造方法,若自己寫了構造方法,則編譯器不再默認提供無參構造方法。
5.構造方法可以重載
語法:
【訪問修飾符】 類名(){
// 構造方法體
}
九,this的用法。
1.this指代當前對象,那個對象調用就是那個對象。
2.在方法中訪問成員變量,默認有個this,在沒有歧義情況下可以省略this。
3.this.成員變量名——訪問成員變量 this.方法名——調用方法 this.()——調用構造方法
4.成員變量和局部變量可以相同。
5.在構造方法中,用來初始化成員變量的參數一般和成員變量去相同的名字,這樣有利於代碼的可讀性,但此處就必須通過this關鍵字來區分成員變量和參數(不能省略this)
例:
public Cell(int row,int col) {
this.row = row ;
this.col = col ;
}
十.數組的引用
1.在java中,數組屬於引用數據類型。
2.數組對象在堆中存儲,數組屬於引用類型,存儲數組對象的地址信息,指向數組信息。
3.數組的元素可以看成數組對象的成員變量(只不過類型全部相同)
int [] arr = new int [2] ;
棧 堆
int []
arr[0] 0
arr 0×50 arr[1] 1
arr[2] 2
4.引用類型數組的聲明,數組的元素可以是任何類型,當然也可以包括引用類型
5.引用類型數組的初始化
(1)引用類型數組的默認值爲null
(2)如果希望每一個都指向具體的對象,需要針對每一個數組元素進行”new“運算。
6.數組的類型是基本類型數組。
(1)數組的元素可以爲任何類型,也包括數組類型。
例: int [][] arr = mew int [2][2]; arr [0] = new int [2]; arr [1] = new int[3];
解釋:arr指向一個數組,該數組有2個元素,每個元素都是int類型數組,長度分別爲 2,3。
(2)當元素爲數組的數組,且每個元素的長度相同時,在其他語言有專門的這種結果成爲二維數組,但嚴格來說在java語言中沒有正真的二維數組。
例:
int [] [] arr = new [2][2];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j] = 0;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.