方法和方法過載

2021-09-10 17:13:32 字數 3073 閱讀 8527

中括號:表示可選

[許可權修飾符]

[特殊修飾符] 返回值型別 方法名(

[引數列表]

)

**方法的分類:**無論是什麼方法最終一定能夠被歸類到四類中。

根據返回值型別和是否有引數列表劃分出來的。

無參無返方法(沒有引數(空的),也沒有返回值型別void)

public

void

printinfo()

無參有返方法(沒有引數(空的),有返回值型別:例如以前用過的scanner它的next***()方法可以給你返回乙個結果,這個結果叫做返回值)

public

intnextint()

有參無返方法(有引數(引數列表),沒有返回值型別void)

有參有返方法(有引數,也有返回值型別)

public

double

plus

(double num1,

double num2)

方法的注意事項:

方法宣告上的引數列表是形式引數列表,它是隨便起的名,只不過是為了方便我們定義方法時使用而已。

方法在呼叫的時候,如果方法宣告上有要求傳遞引數,你就必須按照形式引數列表的型別和數量一 一對應傳值。這時候你傳的值叫做實際引數

方法在定義返回值之後,如果你呼叫時沒有拿變數接收,你得不到這個返回值。

基本資料型別在作為方法的引數傳遞時,是將資料的值傳遞過去了,多者之間沒有關係。

引用資料型別在作為方法的引數傳遞時,是將引用的記憶體位址傳遞過去了,多者之間使用的是同一塊堆記憶體,所以其中一處變化,會導致所有引用得到的結果變化。

**特殊的作用:**用作於物件的初始化。

語法:

許可權修飾符   類名(引數列表)

構造方法的注意事項:每個類都被系統賦予了乙個預設的無參構造。但是如果你手動編寫了乙個構造(無參/有參),系統都不會再給你提供預設無參構造了。

構造方法沒有返回值型別,構造方法的方法名必須和類名完全一致。

我們發現當方法宣告上的引數名(區域性變數)和成員變數的名相同時,缺省會就近原則。區域性變數優先。

所以這時候為了區分區域性變數和成員變數可以給成員變數前加上this標識。

**this:**表示當前這個類的(這個)物件,誰呼叫這個方法誰就是當前物件。

public

student

(string name,

int age, string classid)

因為它是個物件,所以我們可以利用this去呼叫物件可以呼叫的東西。

this.name // 呼叫屬性

this.printinfo(); // 呼叫普通方法

在構造方法中呼叫構造方法時,必須在有效**的第一行。(必須在構造裡才能呼叫)

this(); // 呼叫無參構造

this(***,***,xx); // 呼叫帶參構造

**作用:**方便你呼叫方法,不用去記憶一堆的方法名。也方便你定義方法,不用去起一堆的方法名。

**方法過載(overload):**發生在乙個類中,出現的方法名相同引數列表不同的場景就是方法過載。與方法的返回值型別和訪問修飾符無關!

為什麼與返回值型別無關?

**雞賊回答:**構造方法沒有返回值型別,但是也能構成方法過載,所以方法的過載和返回值型別無關!

正確回答:

float

max(

int num1,

int num2)

;int

max(

int num1,

int num2)

;// 如果你呼叫max方法 你根本無法知道呼叫的是誰

max(10,

20)

什麼樣的才叫引數列表不同?引數列表的個數不同。

float

method1

(int num1,

int num2)

;int

method1

(int num1)

;

引數列表的資料型別不同。

float

method1

(int num1,string num2)

;int

method1

(int num1,

int num2)

;

引數列表的位置不同。

float

method1

(int num1,string num2)

;int

method1

(string num1,

int num2)

;

成員變數和區域性變數的區別:初始值不同。

成員變數有初始值。

區域性變數沒有初始值,如果不賦初始值,不能使用。

位置不同。

成員變數定義在類中方法外。

區域性變數定義在類中方法內。(方法宣告上的形參或者方法體中)

作用域不同。

成員變數的作用域是整個類。

區域性變數的作用域是在定義它的方法內。

生命週期不同。

成員變數是隨著物件的建立而產生,隨著物件的銷毀而消失。

區域性變數是隨著方法的壓棧而產生,隨著方法的彈棧而消失

方法和方法過載

方法的語法 方法宣告 訪問修飾符 返回值型別 方法名 引數列表 public void 1.無參無返 沒有引數列表 沒有返回值 單純的作為 功能 的聚合使用 便於功能的復用。public void show 2.無參有返 沒有引數列表 有返回值 單純的只是想通過呼叫某個功能 得到某些結果的時候就可以...

方法和方法過載

目標 1 理解方法的作用 2 掌握方法的基本語法 3 掌握方法的分類 4 掌握方法的方法過載方法 函式 能夠實現某種功能的乙個東西 main方法就是一種方法,前面還用到過其他的方法例如 變數可儲存單一的資料,方法可以儲存功能 段。面向過程是一種以過程為中心的程式設計思想 這些都是以什麼正在發生為主要...

方法和方法過載

帶參方法的語法 訪問修飾符 返回型別 方法名 形式引數列表 呼叫有參方法 類 物件名 new 類 物件名.方法名 實參1,實參2.形參實參 呼叫方法的時候,實參不能指定資料型別 形參和實參 資料型別要一致,數量也要一致 值傳遞,引用傳遞 基本資料型別傳遞的是 值,乙個變數的值改變,不會影響另乙個 引...