2017-04-12 57 views
0

如何使用外部非靜態類的對象訪問靜態內部類方法?如何使用外部非靜態類的對象訪問靜態內部類方法?

package outer_inner; 

public class Outer { 

private String s = "Hello"; 

public void hello() { 
System.out.println(s); 
} 

public static class Inner { 

private String name = "World"; 

public void getName() { 
System.out.println(name); 
} 

} 
} 

我想訪問下面的類。我怎樣才能做到這一點?

package outer_inner; 

public class TestOuter { 

public static void main(String[] args) { 
// TODO Auto-generated method stub 
Outer o = new Outer(); 


Outer.Inner nobj = new Outer.Inner(); 

} 
+0

您需要實例,你已經做了內部類的對象,因爲你的內部類是靜態的它不再叫內其所謂的嵌套類。現在爲什麼不做nobj.getName()? –

+0

@k_hotspot請通過閱讀名稱包命名約定遵循包命名約定https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html – abcOfJavaAndCPP

+0

@abcOfJava以什麼方式?您必須認識到,由於操作系統專門爲SO發佈了[mcve],因此對包名稱不使用反轉的FQDN是完全合理的。 –

回答

0

你有你的手已經在你的Inner例如,你可以使用它像任何其他對象。

Outer.Inner nobj = new Outer.Inner(); 
nobj.getName(); 
0

你快到了。

試試這個

public static void main(String[] args) { 
    Outer.Inner innerObject = new Outer.Inner(); //Create an instance of static class inner 
    innerObject.getName(); //call your method. 
} 
相關問題