當前位置:首頁 » 編程語言 » java內部類方法調用

java內部類方法調用

發布時間: 2022-07-13 02:54:50

java內部調用內部方法的問題

Java內部調用內部方法主要是通過內部類實現。Java內部類分兩種,成員內部類和方法內部類。

代碼如下:

1.成員內部類
/**
*成員內部類
*/
publicclassOuter{
privateintouter=1;

classInner{
publicvoidshow(){
System.out.println("outer="+outer);
}
}

publicstaticvoidmain(String[]args){
Outer.Innerin=newOuter().newInner();
in.show();

}

}

2.方法內部類
/**
*方法內部類
*
*/
publicclassOuter2{
privateintouter=1;

publicvoidshowOut(){

classInner{
publicvoidshow(){
System.out.println("outer="+outer);
}
}
newInner().show();
}

publicstaticvoidmain(String[]args){
Outer2in=newOuter2();
in.showOut();

}

② Java 內部類 調用問題

從main 方法開始
//走test()
test()//裡面沒有輸出 但有調用in.display();
//接著就走
in.display();//列印輸出 程序結束

text() 中並 沒有輸出
他只調用了 in.display();
所以 只有一個 輸出

③ java內部類調用外部類抽象方法為什麼會調用外部類子類實現的方法

外部類有抽象方法,那外部類一定是抽象類。所以,與內部類對象關聯的外部類對象一定是外部類的子類的實例,那調用的當然是外部類子類實現的方法。

④ Java在外界如何調用局部內部類

  1. 內部類和成員變數一樣,通過外部類的實例調用內部類。

  2. 可以先創建外部類實例。

  3. 用外部類實例調用內部類構造方法創建內部類實例。

  4. 再用這個內部類實例調用內部類成員方法。

Aa=newA();
A.Bb=a.newB();
b.do1();//do是關鍵字,所以這里在do後面加了個1,否則無法編譯

⑤ java怎麼調用另一個類中的方法中的內部類中的方法

class Hello {
public static void pt(){
new A().ppt();
class A {
void ppt(){//ppt()方法不能在其他類中調用,只能在pt()方法中被調用
System.out.println("hello word");
}
}
}
}
public class Test {
public static void main(String[] args){
Hello.pt();
}
}

⑥ java 匿名內部類中的成員變數和成員方法如何調用

使用匿名內部類課使代碼更加簡潔、緊湊,模塊化程度更高。內部類能夠訪問外部內的一切成員變數和方法,包括私有的,而實現介面或繼承類做不到。然而這個不是我說的重點,我說的很簡單,就是匿名內部類的兩種實現方式:第一種,繼承一個類,重寫其方法;第二種,實現一個介面(可以是多個),實現其方法。
public class TestAnonymousInterClass{
public static void main(String args[]){
TestAnonymousInterClass test=new TestAnonymousInterClass();
test.show();
}
//在這個方法中構造了一個匿名內部類
private void show(){
Out anonyInter=new Out(){// 獲取匿名內部類實例

void show(){//重寫父類的方法
System.out.println("this is Anonymous InterClass showing.");
}
};
anonyInter.show();// 調用其方法
}
}

// 這是一個已經存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現
class Out{
void show(){
System.out.println("this is Out showing.");
}
}
程序運行的輸出結果為:

this is Anonymous InterClass showing.

所以在這里看出,匿名內部類有了自己的實現。其實很簡單,使用匿名內部類是因為我這地方需要有點什麼特殊的實現,所以我就在這地方把具體實現也給了出來了。然後我就在這地方獲取它的實例,調用它的方法。
介面的方式,只要把父類換成介面就行了,沒必要給出代碼了。

使用匿名內部類時我們不要忘了我們的目的,我們只是在這地方想對某個類有特殊的實現。而不要想得太多,在匿名內部編寫其它的方法。在匿名內部類中編寫的自己的方法是不可見的。此種做法是毫無意義的,當然一般也不會這么做。在這里只是告訴初學者對於匿名內部類不要想的太多,而要這么想:匿名內部類就是重寫父類或介面的方法。

匿名內部類是沒有名字的,所以我們沒辦法獲得其類型,而只能把它當作超類或介面類型來使用。

⑦ 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");}}

}

⑧ java 內部類怎麼調用外部類的函數

你好!
方法1:定義內部類的一個對象,用該對象調用外部類的成員函數
方法2:直接用語句:this.外部類的成員函數名。
僅代表個人觀點,不喜勿噴,謝謝。

⑨ Java 內部類如何被外部類調用

首先,你要搞清楚靜態方法跟非靜態方法的區別:

非靜態方法是跟隨著類的生命周期的,當類實例化時,非靜態方法跟隨著實例化對象產生,實例化對象可以調用類中的非靜態方法,當實例化對象結束時,非靜態方法也跟著結束。就是說,非靜態方法是依附於實例化對象的,它的生命周期就是實例化對象的生命周期。

靜態方法是不受制於類的實例化對象的,即靜態方法從程序開始運行到最後釋放內存結束是一直存在的,它的生命周期就是程序的生命周期。

從以上可知,靜態方法調用非靜態方法會造成一個問題,就是生命周期的不一致,比如說:程序剛剛開始運行時,類的實例化構造函數還沒有執行,這時靜態方法是調用不了非靜態方法的;或者當實例化對象消亡之後,靜態方法也是不能夠去調用非靜態方法的。

靜態方法要想調用非靜態方法,必須要通過實例化對象去調用;當然也可以把非靜態方法變成靜態方法,這樣就不存在任何障礙了。

希望我的回答對你能夠有所幫助。

⑩ Java內部類怎麼直接調用外部類啊

publicclassOuter{
intx;
Strings="hello";
publicvoidtest(){
System.out.print("test");
}
publicclassInner{
ints=20;
publicvoidtestInner(){
//可以直接使用外部類的成員變數和成員方法
x=0;
test();
//如果外部類的成員變數和內部類變數重名,可以這樣調用外部類的變數
Outer.this.s="test";
//當然你可以new外部類對象這也是沒問題的
Outero=newOuter();
o.x=30;
o.test();
}
}
}

熱點內容
資料庫字體 發布:2024-05-06 16:33:53 瀏覽:696
c語言鏈表建立 發布:2024-05-06 16:17:33 瀏覽:220
python3xlwt3 發布:2024-05-06 16:09:59 瀏覽:372
c語言的意思啊 發布:2024-05-06 15:54:19 瀏覽:69
如何重置手機密碼realme 發布:2024-05-06 14:57:25 瀏覽:348
自己搭建外網伺服器違法嗎 發布:2024-05-06 14:56:32 瀏覽:630
蘋果安卓哪個步數准確 發布:2024-05-06 14:43:58 瀏覽:240
安卓手機軟體用什麼編程語言寫 發布:2024-05-06 14:30:07 瀏覽:657
des解密python 發布:2024-05-06 14:30:06 瀏覽:684
n的階乘演算法 發布:2024-05-06 14:29:57 瀏覽:552