2017-04-12 53 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. 
} 
相关问题