CodeIQの問題で気になった。
public class Ques { public static class Class1 { public String getString() { return "Class1-getString"; } } public class Class2 { public String getString() { return "Class2-getString"; } } public String getString () { return "getString"; } }
Ques ques = new Ques(); System.out.println(ques.getString());
Quesクラスのインスタンスを作成するには、new Quesを用います。
// QuesのClass1のメソッドgetStringを利用 Ques.Class1 quesClass1 = new Ques.Class1(); System.out.println(quesClass1.getString());
Quesクラスにある静的ネストクラス(static修飾されているネストクラス)の インスタンスを作成するには、new Ques.Class1を用います。
そして、
// QuesのClass2のメソッドgetStringを利用 Ques.Class2 quesClass2 = ques.new Class2(); System.out.println(quesClass2.getString());
Quesクラスにあるインナークラス(static修飾されていないネストクラス)の インスタンスを作成するには、ques.new Class2を用います。
これの".new"??
syntax - How does "object.new" work? (Does Java have a .new operator?) - Stack Overflow
.newって書き方自体知らなかった。