2016-03-22 5 views
0

以下のメソッドがどのように機能するかを理解することに問題があります。 私はクラスCalcと乗法のためのメソッドを持っています。最初のメソッドは一般的なgetterを使用し、2番目のメソッドは型変換を使用してprivate属性に直接アクセスできます。私の質問は、number1がnumber2のprivate属性にアクセスできるということです。 Java Tutorialsからタイプ変換を持つメンバーへのJavaアクセス

private int number; 

public Calc multiplication(Calc z) 
{ 
     return new Calc(this.number*z.getNumber()); 
} 

public Calc multiplication(Calc z) 
{ 
     return new Calc(this.number*((Calc)z).number); 
} 

test() 
{ 
number1 = new Calc(2); 
number2 = new Calc(3); 
number1.multiplication(number2); 
} 
+0

Javaでアクセス修飾子がどのように機能するかだけです。あなたはこれがおそらく少し奇妙であるとコメントする最初の人ではありません。ところで、 'z'を' Calc'にキャストする必要はありません。すでに 'Calc'です。 –

+0

zは既にCalcですか?((Calc)z)として型キャストを使用していますか? –

+1

私はshenanigansを呼び出しますが、これはまったく同じシグネチャで2つのメソッドでコンパイルできません。 –

答えて

5

private修飾子は、会員のみが独自のクラスにアクセスできることを指定します。

メンバーが同じクラスの別のインスタンスに属しているかどうかは関係ありません。クラスが同じである限り、あるインスタンスのメソッドは別のインスタンスのメンバーprivateにアクセスできます。

0

ここ数1オブジェクト参照は直接アクセスしていません数値変数ですが、数値2オブジェクト参照の助けを借りてアクセスしています。

private修飾子は、会員のみが独自のクラス

メンバーは、同じクラスの別のインスタンスに属している場合、それは問題ではありませんにアクセスできることを指定します。クラスが同じである限り、あるインスタンスのメソッドは別のインスタンスのプライベートメンバーにアクセスできます。

関連する問題