-4

クラスを追加するには、新しいプロジェクトを作成します。クラスには次のインスタンスが必要です。

field 1 // for input of student ID number  
field 2 // for input of student name  
field 3 // for input gander "M" or "F"  
field 4 // for input student major - network or security  

クラスには、オブジェクトの作成に役立つ引数なしのコンストラクターが必要です。クラスをテストするには、メイン メソッド (つまり、メイン プログラム) を含む別のクラスを作成します。main メソッドのコードは、「n」個のオブジェクトを作成する必要があります。「n」は、必要な生徒の数によって異なります。メイン メソッドは、"n" 人の学生の入力を許可し、適切なタイトルを持つ形式で詳細を出力する必要があります。


これが私の解決策であり、エラーが見つかりました。私を助けてください。これが私の最初の質問です。

import java.util.*;

public class StudentClass 
{   
  int studentdID;
  String studentName,studentMajor;
  char age;

  StudentClass(int s1,String n1,String b1,char a1) 
  {
    studentdID=s1;studentName=n1;studentMajor=b1;age=a1;
  }

  public void display() 
  {
    System.out.println(this.studentdID+" "+this.studentName+" "+this.studentMajor+" "+this.age+" ");
  }

public static void main(String[] args) 
{
 int s;
 String n,k,g;
 char ch;
 int num;

 Scanner ss=new Scanner(System.in);
 System.out.println("HOW MANY STUDENT");
 num=ss.nextInt();

 StudentClass[]a=new StudentClass[num];
 for(int i=0;i<a.length;i++) 
 {
  System.out.println("ENTER STUDENT ID OF STUEDNT"+(i+1));
  s=ss.nextInt();
  System.out.println("ENTER GENDER OF STUDENT"+(i+1));
  g = ss.next();
  ch = g.charAt(0);

  System.out.println("ENTER STUDENT NAME OF STUDENT"+(i+1));
  n=ss.next();
  System.out.println("ENTER STUDENT MAJOR OF STUDENT"+(i+1));
  n=ss.next();

  a[i]=new StudentClass(s,n,k,g);
}
for (int i=0;i<a.length;i++) 
{
 a[i].display();         
}

}

}

4

1 に答える 1

1

変数に名前を付ける方法についてもう少し考え、Java コーディング スタイルの規則を読む必要があります。入力と例外の処理についても読んでください。

とにかく、コードには 2 つの明らかなエラーがあります。

コンストラクターを呼び出すときに、間違った変数を引数として渡します。

a[i]=new StudentClass(s,n,k,g);

おそらくあるはずです

a[i]=new StudentClass(s,n,k,ch);

また、変数 k に代入することは決してなく、代わりに n に 2 回代入します。

System.out.println("ENTER STUDENT NAME OF STUDENT"+(i+1));
n=ss.next();
System.out.println("ENTER STUDENT MAJOR OF STUDENT"+(i+1));
n=ss.next();

次のようにする必要があります。

System.out.println("ENTER STUDENT NAME OF STUDENT"+(i+1));
n=ss.next();
System.out.println("ENTER STUDENT MAJOR OF STUDENT"+(i+1));
k=ss.next();

最後に、すばらしい Java の本を手に取って、オラクルが提供するチュートリアルに取り組むことを検討してください。

于 2013-07-20T13:05:32.240 に答える