2012-12-29 53 views
-3

我在阅读数组后遇到了打印问题。打印后,将打印内存地址,而不是数组的值。我能为此做些什么?我在阅读JAVA后打印数组时遇到问题

public class MyClass 
{ 
    Student St = new Student(); 

    Student[]Array1 = new Student[10]; 


    void AddList() 
    { 

      Scanner Scan = new Scanner(System.in); 

      for (int i=0; i<Array1.length & i<ArrayF1.length; i++) 
      { 
       System.out.println("Enter Student NAME Number " + (i+1) + ":"); 
       Array1[i] = new Student(); 
       Array1[i].setName(Scan.next()); 


       //System.out.println("Enter Student MARK Number " + (i+1) + ":"); 
       //St.setMark(Scan.nextFloat()); 
      } 

    } 

这是我的打印方法。打印的结果是这样的

[email protected]

void PrintList() 
{ 

      for (int i=0; i<Array1.length; i++) 
      { 

       System.out.println(Array1[i]); 

      } 
} 

这是我的学生类,我有我所有的setter和getter方法...所以我有3类如何我可以使用这个3班,并在其中一个获取数据,并在另一个打印标记数据和三班打印学生姓名数据...我怎么能这样做...我做一些代码,但我不知道它是正确的或不...感谢您的帮助......

public class Student 
{ 
private String Name; 
private float Mark; 

/** 
* @return the Name 
*/ 
public String getName() { 
    return Name; 
} 

/** 
* @param Name the Name to set 
*/ 
public void setName(String Name) { 
    this.Name = Name; 
} 

/** 
* @return the Mark 
*/ 
public float getMark() { 
    return Mark; 
} 

/** 
* @param Mark the Mark to set 
*/ 
public void setMark(float Mark) { 
    this.Mark = Mark; 
} 

} 
+0

https://www.goog le.com/search?q=java+array+tostring你会发现,它与阅读学生姓名无关。 – Val

回答

3

只是覆盖toString()方法Student类,并返回打印实例时要打印的适当字符串。

它可能看起来像: -

@Override 
public String toString() { 
    return "Name: " + studentName; 
} 

目前,ObjecttoString()方法的默认实现调用,以及你所看到的是从方法,它的形式是返回的格式 - [email protected]

+0

你能告诉我我到底要写什么吗? – user1935321

+0

@ user1935321 ..如果你在谷歌搜索内容 - “重写toString in Java”,你会得到巨大的信息和例子。我仍然会在这里添加一个小例子。 –

+0

非常感谢你Rohit – user1935321

0

在这里,我加了一些东西toString()方法如何被重写

public class Student { 

    private String name; 
    private int id; 
    float mark; 

    public Student() { 
    } 

    public Student(String name, int id) { 
     this.name = name; 
     this.id = id; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

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

    public float getMark() { 
     return mark; 
    } 

    public void setMark(float mark) { 
     this.mark = mark; 
    } 

    @Override 
    public String toString() { 
     return "Student[ID:" + id + ",Name:" + name + ",Mark:"+mark+"]"; 
    } 

    public void printStudentInfo() { 
     // print all the details of student 
    } 
    public static void main(String[] args) { 
     Student[] students = new Student[10]; 
     Scanner scanner = new Scanner(System.in); 

     for (int i = 0; i < students.length; i++) { 
      System.out.println("Enter Student Name " + (i + 1) + ":"); 
      String name = scanner.nextLine(); 
      Student student = new Student(name, i + 1); 
      System.out.println("Enter Student MARK Number " + (i + 1) + ":"); 
      float mark = scanner.nextFloat(); 
      student.setMark(mark); 
      students[i]=student; 
     } 
     for(Student student:students) { 
      // by default toStirng method is called 
      System.out.println(student); 
      //or you can call like 
      //student.printStudentInfo(); 
     } 
    } 
}