使用Student对象初始化数组的每个元素

时间:2014-09-27 07:50:10

标签: java arrays eclipse object

public class Student { 
    int marks; 
    String name; 
    char sex; 
    String email; 
}
Student[] s = new Student[10];

public class StudentDemo {
    Student s[] = new Student[10];// array Student//
    Student s1  = new Student();//  Student Object//
    s1.setName("John"); //Eclipse says here there is a mistake an ask to delete John// 
    Student[0]=s1;
}

我创建了一个具有名称和其他属性的Student类。但是现在我想用Student对象初始化数组的每个元素。这段代码对吗? Eclipse抛出了很多红点。 帮助

6 个答案:

答案 0 :(得分:0)

你从来没有定义过setName方法,所以我假设你为什么会遇到编译器错误。这样的东西应该在Student类中起作用

 public String setName(String name){
          this.name = name;
    }

答案 1 :(得分:0)

 class Student { 
    int marks; 
    String name; 
    char sex; 
    String email;
    public void setName(String string)
    {
        // TODO Auto-generated method stub

    } 
}


public class StudentDemo{
    public static void main(String [] args)
    {
    Student s[] = new Student[10];// array Student//
    Student s1  = new Student();//  Student Object//
    s1.setName("John"); //Eclipse says here there is a mistake an ask to delete John// 
    s[0]=s1;
    }
}

试试这个。
代码中的问题:

  1. 您在函数之外编写了函数逻辑。在我的修正 代码使用main方法。
  2. 您不能在类文件中拥有2个公共类。所以我把学生档案定为非公开。
  3. 你没有学生名字属性的设定者。

答案 2 :(得分:0)

使用您创建的数组的引用而不是数组的类型 因此,请将Student[0]替换为s[0]

答案 3 :(得分:0)

你的代码有很多问题。

应该是

 Student[] s = new Student[10];
 s[0] = new Student();
 s[0].setName();

您还需要在方法中编写代码。像这样:

 public void doStuffHere()
 {
     // Code goes here.
 }

注意我使用的位置0位置有一个Student对象然后我只需设置名称。没有真正的理由使用s1

答案 4 :(得分:0)

一些事情:

首先,你的第一个数组应该是这样写的:

Student[] s = new Student[10];

其次,您从未在setName(String name)课程中定义方法Student。这看起来像这样:

public void setName(String name)
{
    this.name = name;
}

最重要的是,你不能只调用类中的方法,它需要进入方法,构造函数或初始化块。

例如:

public class StudentDemo
{
    Student[] studentArray = initStudentArray();

    private Student[] initStudentArray()
    {
        Student[] ret = new Student[10];
        Student s = new Student();
        s.setName("John");
        ret[0] = s;

        ...

        return ret;
    }
}

答案 5 :(得分:0)

这可以帮到你。

class Student { 
     int marks; 
     String name; 
     char sex; 
     String email; 

     void setName(String name){
        this.name = name;   //this.name represents the current instance non-static variable
     }
     public String toString(){   //Overridden Objectclass method for string representation of data
         return " Student Name: "+name+
            "\n Gender: "+sex+
            "\n Email: "+email+
            "\n Marks: "+marks;
     }
}

public class StudentDemo {

  public static void main(String[] args){
           Student s[] = new Student[10];
           s[0] = new Student();
           s[0].setName("John");  //similarly u can set values to other attributes of this object 
           System.out.println(s[0]);  // same as s[0].toString() its an implicit call
  }
}