2017-04-12 11 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をどのように読んで、パッケージの命名規則に従ってください。あなたは、オペレーションが特にそうするために[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. 
} 
関連する問題