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

问题描述 投票:-2回答:2

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

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();
  }
}
java object
2个回答
2
投票

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

Related questions


On toString()

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

如果你刚刚添加了这个方法:

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

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

Related questions


2
投票

试试这个:

public static void main(String[] args)
© www.soinside.com 2019 - 2024. All rights reserved.