我在查看我的 OOP 类文档时发现了这个示例:
class Student {
private String name;
public int averageGrade;
public Student(String n, int avg) {
name = n;
averageGrade = avg;
}
public static void main(String[] args) {
Student s = new Student("John", 9);
}
}
我发现他们正在从同一类的主体中实例化一个对象,这让我感到困惑。这被认为是不好的做法吗?新创建的对象 s
是否有 main 方法?
谢谢!
最佳答案
这完全没有错。这是完全正常的。 (无可否认,对于具有 main 方法的类来说,显然可以执行会更有意义 - Student
类中的 main
方法没有多大意义。)
对象并没有真正的方法——类有方法,要么是在没有任何特定上下文的情况下调用的静态方法,要么是在该类型的特定对象(或子类)上调用的实例方法).
虽然您可以调用s.main(...)
,但它实际上只是解析为调用静态方法Student.main
;你不应该像这样“通过”表达式调用静态方法,因为它很困惑。
关于java - 在Java中从该类的主体内部实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892622/