2016-04-05 10 views
0

私はJavaを使い慣れていないし、ここで簡略化したコードの正しい構文を理解するのに問題がある。メソッドコール中に同じクラスの2つのオブジェクトを使用する方法は?

public class Words { 

    private int num; 

    public Words(Int identifier) { 
     this.num = identifier; 

    public boolean isSimilar(Object object) { 
     Words similar = (Words) object; 
     //pretend there's a getIdentifier method in the class 
     if (this.num == similar.getIdentifier + 1 || this.num == 
      similar.getIdentifier - 1) { 
     return true 
     } 
     return false; 

    public String sameSame(){ 
     // if the two objects return true for isSimilar(), return true here 
     return null; 

sameSame()の正しい構文を正しく理解できません。私はこの

Words word1 = new Words(5); 
Words word2 = new Words(6); 

word.sameSame() 

などのメインループで作成した2つのオブジェクトを持っている場合はどのように正しく単語sameSame()のですか?

public String sameSame(){ 
    if (word1.isSimiilar(word2)){ 
     System.out.println("Yeah they're same same"); 
    System.out.println("Not same same"); 

基本的に両方のオブジェクトを使用するにはどのように引数をとらないのですか?

私はそれが理にかなっていると思います。

乾杯。

+6

合理的に可能ではありません。メソッドの中で別のオブジェクトを使用する場合は、それを引数として渡します。 – ApproachingDarknessFish

+0

私はそれが不可能に近づいていたと感じましたが、二重チェックしたいと思いました。ありがとう! – flexcookie

+0

また、 'setOtherWord'や' setCompareWord'などのメソッドを使うこともできます。次に、パラメータなしで 'sameSame'を呼び出すことができます。同じ2つの単語でいくつかの計算を行う予定がある場合は便利です(ただし、構造は違うかもしれませんが、理論的には解決策です)。 – maraca

答えて

2

次のことが可能です。

  • は1つのインスタンスで呼び出され、引数として別のインスタンスへの参照を受け入れるのインスタンスメソッドを定義します。
  • インスタンスの参照を2つ受け付けるクラスメソッドを引数として定義します。で、これを

    boolean isSame = word1.sameSame(word2); 
    

    または:インスタンスメソッドで、

    Words word1 = new Words(5); 
    Words word2 = new Words(6); 
    
    word.sameSame(); // What is 'word'? 
    

    あなたはこれを行うことができます:

だからあなたが宣言されていない変数のインスタンスメソッドを呼び出すことはできませんしながら、クラスメソッド:

boolean isSame = Words.sameSame(word1, word2); 
+0

ああ、どこが間違っているのか分かります。まだJavaの複雑さを理解しようとしています:)ありがとう! – flexcookie

+0

class method = 'static'メソッド – maraca

+1

@maraca - そうですね、私はそれについて明示していたはずです。宣言の例は 'public static boolean sameSame(Words w1、Words w2)'です。 –