當前位置:首頁 » 編程語言 » 方法引用java

方法引用java

發布時間: 2023-11-28 04:47:54

1. java中方法之間是如何調用的

1.與其他語言不同,Java語言不允許編程人員選擇採用值傳遞還是引用傳遞來傳遞參數。基本數據類型總是採用值傳遞。不能把對象傳遞給方法,而只能傳遞對象的引用。引用本身也是採用值傳遞將引用的拷貝傳遞給方法。當方法收到對象的應用後,他就可以直接操作這個對象。


2.當通過return語句從方法返回信息時,基本數據類型的變數總是以值的形式返回(即返回拷貝),而對象總是以應用的方式返回。


方法調用過程:


1.為調用方法的內存中開辟空間。


2.將實參傳遞給形參。


3.程序流程跳轉到方法里,並執行方法。


4.執行完方法,程序流程跳轉到main方法,帶回返回值如果有的話,為方法開辟的空間被銷毀。

列如:

publicclassTest{
publicstaticvoidmain(Stringargs[]){
inta=10,b=20;
Stringstr1="abc";
Stringstr2="def";
swap(a,b);
swap(str1,str2);
System.out.println(a+"/t"+b);
System.out.println(str1+"/t"+str2);
}

publicstaticvoidswap(inta,intb){
inttemp=a;
a=b;
b=temp;
}

publicstaticvoidswap(Stringstr1,Stringstr2){
Stringtemp=str1;
str1=str2;
str2=temp;
}
}

結果:


1020
abcdef


注意結果中整型和字元串都沒有交換。

2. Java如何調用內部類的方法

在其他類中創建內部類的對象時,必須要使用外部類的實例來創建。比如類B是類A的內部類,則語句A.B=new A.B()將是錯誤的。正確的方法是先創建一個類A的對象,比如A ma=new ma();然後再用這個對象來創建內部類的實例,比如A.B mab=ma.new B();這里要注意後面的語法ma.new B()。也可以把這兩步合為一步,比如A.B mab=new A().new B();注意,這里使用了兩個new運算符,如果只有一個將是錯誤的,比如A.B mab=new A().B();是錯誤的,new A().B()語句JAVA會理解為創建一個無名的引用,然後由這個引用調用類A中的B()函數。如果需要調用的構造函數不是默認的,則可以這樣創建比如A.B mab=new A(2).new B();或者分為兩步A ma=new A(2); A.B mab=ma.new B();

而且我也怕是不是會重新建個棋盤,那就不行了!
這個你可以放心,不會創建兩個棋盤,下面舉例驗證

public class A2 extends JFrame {
public static void main(String[] args) {
A ma=new A(); //可以看到在這里並沒有創建內部類,也就是說內部類中的bbb並沒有輸出
A.A1 ma1=ma.new A1(); //調用內部類的方法,當然內部類如果有帶參數構造函數,則還應在內部類中加上參數。
ma1.f();
}}

class A{
A(){System.out.println("aaa");}
class A1{
A1(){System.out.println("bbb");}
public void f(){System.out.println("kkk");}}

}

3. 在Java中要引用對象的屬性和方法,需要怎麼實現

屬性:第一種就是自己定義一個public的公共屬性,然後調用就行了(不安全),第二種就是創建一個private的私有的屬性,生成公共的set和get方法(封裝),然後調用;
方法:同類中方法為靜態方法可以直接調用,不為靜態方法需要new和不同類中要new出對象,然後調用其方法;
左上角有我頭像,有很多朋友在一起相互交流學習。

4. java中方法調用時的寫法

如果是非靜態的方法1調用非靜態的方法2,那麼
非靜態方法2所在類的實例引用.非靜態方法2

public class Test{
public void getMethod(){
Test t=new Test();
t.getTwoMethod();
}
public void getTwoMethod(){
}

}

如果靜態調用靜態:
public class Test{
public static void main(String[]args){

Hello();
}
public void Hello(){
System.out.println("HELLOWORLD")
}

}

如果是繼承的話:
public class a{
public void jj(){}
}
public class b extends a {
public void hh(){
super.jj();
}
}

熱點內容
修改pve伺服器ip 發布:2024-05-19 18:31:52 瀏覽:468
微信密碼忘記了如何取出裡面的錢 發布:2024-05-19 18:27:35 瀏覽:329
vs2005反編譯 發布:2024-05-19 18:26:34 瀏覽:363
ug啟動語言腳本 發布:2024-05-19 18:25:57 瀏覽:874
緩存伺服器技術 發布:2024-05-19 18:25:56 瀏覽:885
androidlistview橫向 發布:2024-05-19 18:21:02 瀏覽:704
多看ftp 發布:2024-05-19 18:11:31 瀏覽:543
給定一個演算法 發布:2024-05-19 17:50:08 瀏覽:864
戀愛生物種離線緩存 發布:2024-05-19 17:49:15 瀏覽:579
卡巴斯基伺服器如何連接外網更新 發布:2024-05-19 17:42:06 瀏覽:560