引數傳遞以及返回值

2021-09-28 14:39:43 字數 4508 閱讀 2659

在呼叫乙個方法時,我們經常傳入我們需要的引數,對於基本型別的傳入,在執行方法時直接用即可,這裡僅介紹幾種引用型別的引數傳遞

類名作為形式引數

如果乙個方法的形參要乙個類 型別,就傳入乙個該類的物件

根據**可知,建立物件時完成初始化,此時物件裡的的num時2,在呼叫方法時,傳入30,替代了原來的2,所以最後的輸出是30;如果在呼叫方法時,是重新建立乙個物件並呼叫方法,那麼在主方法裡輸出的num就是第一次建立物件時的初始化num=2

抽象類名作為形式引數

如果乙個方法的形參要乙個抽象類 型別,就傳入乙個該抽象類的子類物件

package org.westos.demo2;

public class mytest

//定義方法,傳入抽象類 型別引數

3.介面名作為形式引數如果乙個方法的形參要乙個介面 型別,就傳入乙個該介面的子類物件

匿名內部類作為形式引數匿名內部類作為引數傳遞,匿名內部類本身就是類或者介面的子類物件

package org.westos.demo2;

public class mytest

});//也可以給匿名內部類起個名,然後實現介面並呼叫方法

myinte***ce myinte***ce = new myinte***ce()

};myinte***ce.show();

//通過匿名內部類繼承抽象類,並呼叫method2方法

method2(new myclass()

});//也可以給匿名內部類起個名,然後繼承抽象類呼叫方法

myclass myclass = new myclass()

};myclass.show();

}//介面作為引數傳遞

public static void method(myinte***ce myinte***ce)

//抽象類作為引數傳遞

public static void method2(myclass myclass)

}//定義乙個介面

inte***ce myinte***ce

//定義乙個抽象類

在使用完乙個方法時,我們經常需要乙個返回值,對於基本型別,返回的就是該基本型別的乙個值,這裡介紹幾種引用型別的返回值

類名作為返回值

如果乙個方法的返回值要乙個類 型別,就返回乙個該類的物件

package org.westos.demo2;

public class test

//定義乙個方法,返回值為是乙個類 型別

2.抽象類名作為返回值如果乙個方法的返回值要乙個抽象類 型別,就返回乙個該抽象類的子類物件

package org.westos.demo2;

public class test

//定義乙個方法,返回值為是乙個抽象類 型別

這裡有乙個問題,既然我們傳入了的num=33,為什麼輸出顯示的是22呢?因為首先在建立子類物件時初始化後,num=22,在呼叫方法傳入num=33,返回乙個物件,而這個物件沒有人接收,所以無法得以輸出,輸出的num依然是最開始的22;如果想輸出33,需要重建乙個物件接收返回值,在通過物件名.num就可輸出33

3.介面名作為返回值

如果乙個方法的返回值要乙個介面 型別,就返回乙個該介面的子類物件

package org.westos.demo2;

public class test

//定義乙個方法,返回值為是乙個介面型別

public static myinte***ce method(myinte***ce myinte***ce,int num)

}//定義乙個介面

inte***ce myinte***ce

//定義介面的子類

匿名內部類作為返回值匿名內部類作為返回值,返回的物件就是類或者介面的子類物件

package org.westos.demo2;

public class mytest

//匿名內部類作為返回值,返回介面的子類物件

public static myinte***ce method()

};return myinte***ce;

}//匿名內部類作為返回值,返回抽象類的子類物件

public static myclass method2()

};return myclass;

}}//定義乙個介面

inte***ce myinte***ce

//定義乙個類實現介面

class a implements myinte***ce

}//定義乙個抽象類

abstract class myclass

//定義乙個類繼承抽象類

class b extends myclass

}

鏈式程式設計可以使得**可讀性高,鏈式程式設計的原理就是返回乙個this物件,就是返回本身,達到鏈式效果

舉個例子:

另外,狀態修飾符static可以修飾成員變數,成員方法;而final可以修飾類,成員變數和成員方法

抽象修飾符abstract可以修飾類,成員方法

C函式引數傳遞與返回值傳遞

1 引數傳遞 stdcall和 cdecl都是函式呼叫約定關鍵字,先給出這兩者的區別,然後舉例項分析 stdcall 引數由右向左壓入堆疊 堆疊由函式本身清理。cdecl 引數也是由右向左壓入堆疊 但堆疊由呼叫者清理。另外,這兩者在同一名字修飾約定下,編譯過後變數和函式的名字也不一樣,具體見另一博文...

方法引數型別以及返回值

乙個方法的形參要乙個類 型別,就傳乙個該類的物件 public class mytest public static void set student student,int num class student 輸出結果 2乙個方法的形參要乙個抽象類 型別,傳乙個該抽象類的子類物件 public c...

引數 返回值

1.函式 函式是對功能的封裝 語法 def 函式名 形參列表 函式體 塊,return 呼叫 函式名 實參列表 2.返回值 return 在函式執行的時候.如果遇到return.直接返回 1.如果函式什麼都不寫,不寫return,沒有返回值.得到的是none 2.在函式中間或者末尾寫return,返...