2017-09-20 9 views
-2

私は現在、コンピュータサイエンスコースのためにEclipseを使ってJavaを学習していますが、現在表示されているエラーを修正する方法を理解するために助けが必要です。Eclipseを使用して、プログラムを動作させようとしています

package sec4Les2; 
 

 
public class RoseDS4L2Person { 
 
\t //creating the variables 
 
\t public String name = "Uma Thurman"; 
 
\t public int Age = 0; 
 
\t 
 
\t //constructor 
 
\t 
 
\t public RoseDS4L2Person() 
 
\t { 
 
\t \t 
 
\t } 
 
\t 
 
\t public String getname() 
 
\t { 
 
\t \t //will return first name 
 
\t \t return name; 
 
\t } 
 
\t public int getAge() 
 
\t { 
 
\t \t //will return age 
 
\t \t return Age; 
 
\t } 
 
public void setAge(int Age) 
 
\t { 
 
\t //will set age to int 
 
\t this.Age = Age; 
 
\t } 
 
}
そして、ここで実行しているコードです:

package sec4Les2; 
 

 
public class RoseDS4L2ManagingPeople { 
 

 
\t public static void main(String[] args) \t { 
 
\t \t //runs information in first class file 
 
\t \t 
 
\t \t RoseDS4L2Person p1 = new RoseDS4L2Person("Arial", 37); 
 
\t \t RoseDS4L2Person p2 = new RoseDS4L2Person ("Joseph", 15); 
 
\t \t 
 
\t \t if(p1.getAge()==p2.getAge()) 
 
\t \t { 
 
\t \t \t System.out.println(p1.getname()+" is the same age as "+p2.getname()); 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t System.out.println(p1.getname()+" is NOT the same age as "+p2.getname()); 
 
\t \t } 
 
\t } 
 
}

それは最初のものにエラーがないと言いますが、もう一つは、P1のエラーを持っています/ p2行。このエラーを修正するにはどうすればよいですか?ありがとうございました!

+2

文字列と整数をとるRoseDS4L2ManagingPeopleクラスのコンストラクタを追加してください – Anon

答えて

0

このコードをクラスに追加する必要があります。基本的に、あなたのクラスにはコンストラクタがありませんでした。また、慣例により、メンバ変数は小文字で始まることに注意してください。したがって、Ageは実際にはageになります。

もう1つのことは、名前を定数として保持していることです。おそらくあなたは "Uma Thurman"を取り除きたいと思うでしょう。初期化時にnameが指定されていないすべてのオブジェクトのデフォルト名として保持する場合は、コンストラクタにその名前を追加するとよいでしょう。このような*

public class RoseDS4L2Person 
    { 
     // other lines .... 
     RoseDS4L2Person(String name, int age) { 
      this.Age = age; 
      this.name = name; 
     } 

     } 

*

何か:

public RoseDS4L2Person(String name, int age) 
{ 
    this.name = name; 
    this.Age = age; 
} 

この意志:

public class RoseDS4L2Person 
     { 

private static final String UMA_THURMAN = "Uma Thurman"; 
      // other lines .... 

RoseDS4L2Person(int age) { 
       this.Age = age; 
       this.name = UMA_THURMAN; 
      } 
} 
+1

説明はいいですが、コードのみの回答はお勧めできません。 –

0

あなたはRoseDS4L2Personがそうのように、文字列や数値を受け入れるためのコンストラクタを持つ必要がありますパラメータとして名前と年齢を渡すクラスのインスタンスを作成できます。

-1

存在しないコンストラクタでオブジェクトを作成したため、エラーがポップアップしています。デフォルトコンストラクタでオブジェクトを作成するか、コンストラクタを作成すると が渡す引数を受け入れることができます。 ハッピーコーディング

関連する問題