2017-06-08 15 views
3

私のコードのセッターメソッドの作成には助けが必要です。私は両方の文字列値の2つのセッターメソッドを作成しましたが、私はA)正しいかどうか、B)画面に表示されるようにそれらを呼び出す方法がわからない。本質的に私はライオンとヒッポクラスを呼び出して、名前とサイズを既に持っていて、何かを挿入することで直接私の主な機能の中にそれらを実装する必要がないようにしたいと思います。 Hippo h = new Hippo( "Tom 」、 "42")Javaの理由:実際の引数リストと正式な引数リストの長さが異なる

package game2; 


public class Game2 { 

    public static void main(String[] args) { 
     //I am getting the error here, what I want to do is figure out how to 
     //get this to work and then declare a name and size for the animal 
     Hippo h = new Hippo(); 
     Lion l = new Lion(); 
    } 

} 

package game2; 

public abstract class Animal { 
    private String name; 
    private String Size; 

    public String getName() { 
     return name; 
    } 

    public String getSize() { 
     return Size; 
    } 

    public void setName(String name) { 
     name = "Tom"; 
    } 

    public void setSize(String name) { 
     name = "42"; 
    } 


    public Animal(String theName, String theSize) { 
     name = theName; 
     Size = theSize; 
    } 
} 

package game2; 

public class Hippo extends Animal { 

    public Hippo(String name, String Size) { 
     super(name, Size); 
    } 
} 

package game2; 

public class Lion extends Animal{ 

    public Lion(String name, String Size) { 
     super(name, Size); 
    } 
}  
+0

コンパイルエラーを表示してください。 –

+1

あなたのコンストラクタを見れば、あなたは 'name'と' size'を期待しています。あなたは 'ライオンl =新しいライオン("レオ "、" XXL ")をする必要があります。 ' –

+1

エラーメッセージはクリアであり、英語も分かりませんので、どうすればわかりにくいでしょうか?それは何度も答えられているので、ちょっとした研究でさえ助けになります。 "New to java"を書くことは、エラーメッセージを無視して、すべての費用をかけて自分の研究を避けることの理由ではありません。 – Tom

答えて

0

あなたが右のコンストラクタを使用していないので、あなたのコードがコンパイルされていないあなたが何かしなければならないので、 両方カバさんとライオンのコンストラクタは、2つの文字列引数を期待する:

Hippo h = new Hippo("myHippo", "220"); 
Lion l = new Lion("Simba", "400"); 
0

新しいカバを()/ライオン()されますあなたが持っていない機能(空のコンストラクタ)

を呼び出すあなたは2つのパラメータ

を必要とする機能カバ(文字列名、文字列のサイズが)新しいカバ(「ビリー」、「10」)

0
を試してみます

HippoLionの両方のコンストラクタは、名前とサイズの2つの文字列引数を必要とします。それぞれのコンストラクタを呼び出すときに渡す必要があります。例:

Hippo h = new Hippo("Happy", "Huge"); 
Lion l = new Lion("Leo", "Big"); 
+0

私は自分の設定したメソッドをどのように使用するのか把握しようとしていますが、今は主な機能の中で宣言するのではなく、動物クラスの中で宣言することなく動物のサイズと名前を設定しようとしています。助言がありますか? –

+0

@ Connor.Littleton私はその質問を理解していません。コードをどのように見せたいかの例を共有できますか? – Mureinik

+0

ok私はこの質問を編集してその方法を尋ねるつもりです –

0

動物を作成した後に名前とサイズを決定する場合は、パラメータのないコンストラクタが必要です。現在、すべてのコンストラクタは2つの引数を渡す必要があります。だから1つ書く!ここで

は一例です。

public Hippo() { 
    setSize(insert default size here); 
    setName(insert default name here); 

} 

その後、あなたはこのようなカバ作成することができます:自分でコンストラクタを実装する際に注意してください

Hippo hippo = new Hippo(); 
hippo.setName("Tom"); 
1

を、あなたはデフォルトコンストラクタをオーバーロードされます。したがって、2つの引数を渡す必要があります。

あなたがインスタンス化時にコンストラクタの引数を渡すdidnot:

Hippo h = new Hippo(); 
Lion l = new Lion(); 

クラスのコンストラクタは2つのパラメータを期待していますので。

public Hippo(String name, String Size) { 
    super(name, Size); 
} 

そして:

public Lion(String name, String Size) { 
    super(name, Size); 
} 

ソリューション:

あなたがオブジェクトをインスタンス化するときに引数を渡すことができます次のいずれか

Hippo h = new Hippo("name", "33"); 
Lion l = new Lion("name", "22"); 

それとも、これらのためのオーバーロードコンストラクタを実装する必要があります。

this to learn more about constructor overloadingを読んでください。

関連する問題