JAVA 類和對象基礎知識詳解
/*文章中用到的代碼只是一部分,需要源碼的可通過郵箱聯系我 [email protected]*/
和C++一樣,JAVA也是一門面向對象的語言,其基礎和核心是類和對象。而面向對象的思想是來源與顯示生活,自然在學習時聯系現實生活會理解得更深。
1.對象
首先,什麽是對象?
在現實生活中只要是一個具體的物體或者一個具體的事物就是一個對象。你所看到的任何一個物體,你所想的任何一個物體都是對象,比如:某一臺電腦,某一個人
其次,知道了什麽是對象之後便是去描述。你會從哪些方面去描述對象?分別有些什麽內容呢?
某一臺電腦
特征:大小、材質、形狀、顏色、CPU、顯卡、內存、硬盤、品牌、...
功能:顯示、散熱、計算、輸入、開機、關機、...
某一個人
特征:身高、體重、外貌、年齡、性別、姓名、戶籍、愛好、特長、...
行為:吃飯、睡覺、學習、編程、工作、玩、走路、說話、...
2.類的組成
現實生活中是怎樣對對象進行分類的呢?
根據對象相似的特征和相似的行為(功能、用途)進行分類;生活中的類是抽象的。
程序中的類是怎樣的呢?
程序中的類是根據現實生活中對象的特征和行為(功能/用途),按照程序中類的固定格式進行的抽象定義。
程序中的類是由兩個部分組成:1.屬性 2.方法
屬性是根據對象的特征進行定義的;
Java中類的方法分為兩種:1.普通方法 2.構造方法
普通方法是根據對象的行為(功能、用途)進行定義的。
3.類的基本結構
public class 類名 {
//定義屬性
訪問修飾符 數據類型 屬性名;
//定義普通方法的格式
訪問修飾符 返回值數據類型 方法名(數據類型 參數名,...){
}
}
類在Java中只是模板,基本單位,所以不能使用類調用屬性和方法,要調用屬性和方法需在main函數中進行。
1 public class Student { 2 //屬性 3 private String name; 4 5 private int scro; 6 7 //構造方法 8 public Student() 9 { 10 //this("未知名字","Java"); 11 scro=0; 12 } 13 //普通方法 14 public void setName(String n) 15 { 16 name=n; 17 }Student類18 19 }
4.實例化對象和調用屬性方法的格式
實例化對象的關鍵字:new
格式:
類名 對象名 = new 類名();
類名 對象名 = new 構造方法(參數值,...);
調用屬性和方法的格式:
對象名.屬性名
對象名.方法名(參數值,...);
1 public class Student { 2 private int scro; 3 4 public Student() 5 { 6 scro=0; 7 } 8 9 10 public void study() 11 { 12 scro++; 13 System.out.println(name+"學習中"); 14 } 15 16 public static void main(String [] args) 17 { 18 Student st1=new Student();//實例化 19 st1.study();//方法調用 20 } 21 }View Code
5.構造方法
定義構造方法的格式:
訪問修飾符 構造方法名(數據類型 參數名,...){
}
註意:
1.類會默認提供一個無參數的構造方法;但如果在類中自定義了構造方法,默認的構造方法會被覆蓋,無法再繼續使用,只能使用你自定義的構造方法。
2.構造方法不能定義返回值數據類型;
3.構造方法的名字必須要和類名完全一致。
構造方法的用途:
1.實例化對象;
2.可以給屬性設置初始值。
1 public class Student { 2 private String name; 3 4 private int scro; 5 6 public Student() 7 { 8 scro=0; 9 } 10 11 public Student(String name) 12 { 13 //this(name,"Java"); 14 this.name=name; 15 scro=0; 16 } 17 18 }構造方法
6.方法重載
和C++中函數重載一樣,JAVA中也可以進行方法的重載。
實現方法重載的條件是:
1.方法名相同
2.參數的類型、個數、順序一定要不同
會根據方法的參數來決定調用不同的方法。
1 public class Student { 2 3 public Student() 4 { 5 //this("未知名字","Java"); 6 scro=0; 7 } 8 9 public Student(String name) 10 { 11 //this(name,"Java"); 12 this.name=name; 13 scro=0; 14 } 15 16 }View Code
7.this關鍵字
與C++相同,在類的方法中調用屬性時,若參數名與屬性名相同,可使用this.加以區分
另 this(參數值,...); 調用對應參數的構造方法。
那麽this到底指的是誰呢?
誰在調用方法,方法中的this就表示誰。假設a對象名在調用方法,那麽方法中的this表示a,如果換成b對象名在調用方法,方法中的this表示b。類似於生活中的"我"這個詞。
1 public class Student { 2 private String name; 3 4 private int scro; 5 6 public Student() 7 { 8 this("Java"); 9 scro=0; 10 } 11 12 public Student(String name) 13 { 14 this.name=name; 15 scro=0; 16 } 17 18 }this關鍵字
JAVA 類和對象基礎知識詳解