2017-03-27 19 views
-7

ここでJavaで考えることは質問です これらのメソッド(contents()、to())はどのように参照せずに呼び出されますか? はこのために注意を払っていない(
(klklklklklklklklklklklklklklklklk)私は。私はそれが理解しやすいだけでこの質問を考えている)あなたの強調表示方法()は、クラスのインスタンスメソッドParcel2、 があるオブジェクトなしで呼び出されるJavaサンプルコードの非静的メソッド

public class Parcel2 { 
    class Contents { 
    private int i = 11; 
    public int value() { return i; } 
    } 
    class Destination { 
    private String label; 
    Destination(String whereTo) { 
    label = whereTo; 
    } 
    String readLabel() { return label; } 
    } 
    public Destination to(String s) { 
    return new Destination(s); 
    } 
    public Contents contents() { 
    return new Contents(); 
    } 
    public void ship(String dest) { 
    Contents c = contents(); 
    Destination d = to(dest); 
    System.out.println(d.readLabel()); 
    } 
    public static void main(String[] args) { 
    Parcel2 p = new Parcel2(); 
    p.ship("Tasmania"); 
    Parcel2 q = new Parcel2(); 
    // Defining references to inner classes: 
    Parcel2.Contents c = q.contents(); 
    Parcel2.Destination d = q.to("Borneo"); 
    } 
    } 
+5

イメージとしてコードを投稿しないでください。そして 'ship()'(あなたの強調表示されたメソッド)では、参照は** 'this' **です(' contents() 'または' to'も 'static'です)。 –

+3

コードを画像として投稿しないでください!理由:スクリーンリーダーを使用しているユーザーは読むことができず、コードはコピー/貼り付けできません。あなたの質問に実際のコードを編集してください。 –

+0

内部クラスを静的にすることで問題を解決できますか? – muzzlator

答えて

1

したがって、これらのクラスはこのクラス内で可視であるため、同じクラス内の他のインスタンスメソッドからも呼び出すことができます( )。 NB:暗黙的にあなたがあなたのからへと内容を呼び出すために、この参照を使用しています。

+0

良い説明。 – EJoshuaS

0

あなたはではありません。参照/オブジェクトなしで呼び出します。別のインスタンスメソッドからインスタンスメソッドを呼び出していますが、これは完全に受け入れられます。

関連する問題