-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 编码风格约定。还阅读处理输入和异常。

无论如何,代码中有两个明显的错误:

当您调用构造函数时,您将错误的变量作为参数传递:

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

大概应该是

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

而且您永远不会分配给变量 k,而是分配给 n 两次:

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 书籍并阅读 Oracle 提供的教程。

于 2013-07-20T13:05:32.240 回答