方法與方法過載以及this關鍵字的作用

2021-10-06 13:22:10 字數 1919 閱讀 4106

(1)基本資料型別和引用資料型別傳參的區別

public class test 

public void calc2(student student)

public static void main(string args)

}

*int n=8;test.calc1(n);是將 int num 賦為 「n」的值,然後呼叫方法為clac1的方法,num=num+1; num=9; 但是main()方法中要求列印的是 system.out.println(n);,是n的值,其中變數n的並未發生改變,所以輸出的還是n 即為8;但是 stu.age=18;賦值是把原物件的引用傳遞給另乙個引用,stu.age的值會受影響

*基本資料型別,操作傳遞的是變數的值,改變乙個變數的值不會影響另乙個變數的值。引用資料型別(類、陣列和介面),賦值是把原物件的引用(可理解為記憶體位址)傳遞給另乙個引用

(2)成員變數和區域性變數的區別

(1)在類中定義的變數叫作成員變數(全域性變數),在方法中定義的變數叫作區域性變數。

(2)區域性變數宣告賦值以後在使用,成員變數可以不賦值,值就是預設值。例如string型別的預設值是null,

int型別的預設值是0

(3)區域性變數只能在當前的方法中使用,在其他方法中不能使用。但是成員變數可以在整個類下每個方法中使用。

(4)在乙個方法中區域性變數和成員變數重名了,方法中的區域性變數會被優先使用,如果想在此方法中使用全域性變數,則需要使用this關鍵字。

(5)在同乙個方法中,區域性變數不能夠重名。

(3)方法過載的特點

1.在同乙個類中;

2.方法名一樣,但是引數不一樣

3.對返回值沒有要求

比如:

b錯誤 因為方法名相同,但是引數列表也相同,不符合方法過載的特點

(4)構造方法

構造方法:

(1)建立物件

(2)物件中的屬性賦值

構造方法的語法:

訪問修飾符 構造方法的名字(構造方法引數列表)

其中構造方法的名字和類名一致。構造方法定義的時候,不需要指定返回值。

public student()

public student(string name)

如果不想敲的話,可以使用:

構造方法的快捷方式:能夠幫助快速的建立類的無參構造方法 和類的有參構造方法。

alt + shift + s ===> 倒數第3個選項(使用屬性生成構造方法) ==> 最後把super()**去掉

構造方法的個數是不定的。構造方法需要多少個引數,需要什麼引數,根據你開發的時候,

建立物件的時,想給物件的哪些屬性賦值。

如果在方法中呼叫全域性變數怎麼辦?請使用this關鍵字。

this關鍵字的作用:

(1)this關鍵字能夠呼叫屬性。(可以在構造方法中呼叫 也可以在例項方法中呼叫)

(2)this關鍵字呼叫本類中的方法。 注意:不要呼叫成死迴圈了

(3)this關鍵字呼叫構造方法。如果在構造方法中使用this關鍵字呼叫其他的構造方法,this關鍵字應該放在構造方法的第一行。注意:請不要呼叫成死迴圈了

構造方法:

如果乙個類中沒有定義構造方法,系統缺省會幫助我們建立乙個無參構造方法。

如果乙個類中已經定義了構造方法,系統不會幫助我們建立乙個無參構造方法。

類中一定一定一定要建立乙個無參構造方法!!!

定義乙個方法的時候,如果方法上沒有使用static關鍵字,那麼這個方法就是乙個例項方法。

方法與方法過載

定義帶引數的方法 訪問修飾符 返回型別 方法名 形式引數列表 呼叫帶引數的方法 物件名.方法名 引數1,引數2,引數n 常見錯誤 呼叫方法時不能指定實參型別 形參和實參資料型別不一致 數量也要一致 方法傳參 基本資料型別和引用資料型別在傳參是區別 基本資料型別,操作傳遞的是變數的值,改變乙個變數的值...

方法與方法過載

public class student public string getname public 方法的返回值 方法名 如果方法有返回值,需要定義乙個變數去接收 接收返回值 定義方法的語法 物件的行為 public 訪問修飾符的意思 公共的 訪問修飾符 public 方法的返回值 方法名 引數列表...

方法與方法過載

訪問修飾符 返回型別 方法名 形式引數列表 物件名.方法名 引數1 引數2 引數n public class test public void calc2 student student 測試類 test test newtest int n 8 test.calc1 n student stu n...