通过后一类的构造函数中的不同类访问特定类的对象的变量

时间:2010-05-28 18:21:20

标签: java object

在下面的代码中,我添加了两行打印输出。第一行像往常一样打印垃圾,但令人惊讶的是第二行给了我一个编译错误。为什么呢?

class Student {

  private String name;

  public Student(String name){
         this.name = name;
  }
  public String getName(){
         return name;
  }
}

class StudentServer {

   public StudentServer(){

          Student[] s = new Student[30];
          s[0] = new Student("Nick");

          // LINE 01: This compiles, although prints junk
          System.out.println(s[0]); 

          // LINE 02: I get a error called cannot find symbol
          System.out.println(s[0].getName());
   }

  public static void main(){
         new StudentServer();
  }
}

2 个答案:

答案 0 :(得分:2)

试试这个:

public static void main(String[] args)

答案 1 :(得分:2)

main方法不是正确的应用程序入口点的问题,这段代码应该编译并运行得很好。问题似乎在于其他地方,目前还没有足够的信息来确定来源。

相关问题


toString()

打印s[0]“像往常一样打印垃圾”的原因是因为您没有@OverridetoString()继承的Object方法。

如果您刚刚添加了此方法:

@Override public String toString() {
   return "Student : " + name;
}

然后打印s[0]不会打印“垃圾”;它将打印上述toString()返回的任何内容(在这种情况下,这是合理的“非垃圾”)。

相关问题