標籤:基礎 double eth 賦值 method 字串常量 ret cte 棧空間
物件導向(一)
屬性
成員變數和局部變數:
相同點:
- 迴圈變數聲明的格式: 資料類型 變數名 = 初始化值
2.都有範圍
不同點:
- 聲明位置不同:成員變數聲明在類裡,方法外
局部變數聲明在方法內,方法的形參部分,代碼塊內
成員變數(寫在類--class裡)和局部變數(寫在方法--main裡)的區別
成員變數的初始化(有圖有真相)
成員變數可以是java中任意一種資料類型(基礎資料類型和參考型別)
成員變數可以初始化, 也可以不初始化(java預設初始化)
成員變數的作用範圍-->整個類
2.成員變數的修飾符有四個:public protected default private 許可權由大到小遞減
局部變數沒有修飾符,與所在的方法修飾符相同
3.成員變數存在堆空間中,局部變數存在棧空間中
總結:關於變數的分類:(1)按照資料類型的不同:基礎資料型別 (Elementary Data Type)(8種) & 引用資料類型
(2)按照聲明的位置的不同:成員變數 & 局部變數
方法
提供某種功能的實現 main方法也是方法,main方法裡邊的屬性也必須要賦值。
1執行個體:public void eat(){//方法體}
public String getName(){}
public void setName(String n){}
格式:許可權修飾符 傳回值類型(void:無傳回值/具體的傳回值) 方法名(形參){}
2關於傳回值類型:void:表明此方法不需要傳回值
有傳回值的方法:在方法的最後一定有return + 傳回值類型對應的變數
記憶:void 與return不可以同時出現一個方法內。
3方法內可以調用本類的其他方法或屬性,但是不能在方法內再定義方法
記憶體劃分的結構:
棧:局部變數 、對象的引用名、數組的引用名
堆:new 出來的“東西”(如:對象的實體,數組的實體),含成員變數
方法區:含字串常量
靜態域:聲明為static的變數
方法的重載/重寫
方法的重載(overload)
要求:1.同一個類中 2.方法名必須相同 3.方法的參數列表不同(①參數的個數不同②參數類型不同) 方法的許可權修飾符可以不相同
補充:方法的重載與方法的傳回值類型沒有關係
//如下的四個方法構成重載
//定義兩個int型變數的和
public int getSum(int i,int j){
return i + j;
}
//定義三個int型變數的和
public int getSum(int i,int j,int k){
return i + j + k;
}
//定義兩個double型資料的和
public double getSum(double d1,double d2){
return d1 + d2;
}
//定義三個double型數組的和
public void getSum(double d1,double d2,double d3){
System.out.println(d1 + d2 + d3);
}
不能與如上的幾個方法構成重載
public int getSum1(int i,int j,int k){
return i + j + k;
}
public void getSum(int i,int j,int k){
System.out.println(i + j + k);
}
以下的兩個方法構成重載。
public void method1(int i,String str){
}
public void method1(String str1,int j){
}
Java物件導向