我正在学习Java,而令我感到惊讶的一件事就是你不要从类中创建一个对象。例如:
class helloworld{
public static void main(String[] args){
System.out.println("Hello world!");
}
}
我不明白的是,我一直认为一个类是对象的蓝图,而在这里你不创建一个对象,程序只是从类中运行。是否创建了一个从隐式运行main
方法的对象?我没有完全表达这一点,并假设我错过了一些理解 - 有人可以解释一下吗?
答案 0 :(得分:4)
“作为对象蓝图的类”是Java 101描述现实的方式。它有助于教你什么类和对象,但这不是全部真相。
类也是静态代码和数据的持有者,它们独立于任何类实例而独立存在。您可以将其视为一种命名空间的全局数据。
在您的示例中,main
方法本身就是一个静态方法,可以在没有现有对象的情况下执行,System.out
指的是一个独立存在的对象,附加到静态System
类中的变量。
答案 1 :(得分:0)
如果在java中只使用静态方法和变量,那么该类的所有对象共享相同的变量和方法,您不必创建对象并调用。 主要方法也是代码运行的入口点
答案 2 :(得分:0)
您确实在java中创建对象。 static关键字显示变量,方法或嵌套类属于类/超类,而不属于对象。 main方法声明为static,因此可以在运行时访问它;它不是一个对象的一部分,它是该类的一部分。 JVM在运行时查找main方法。
答案 3 :(得分:0)
公开表示可以从任何类静态访问
静态意味着您不必创建对象或其他词语不需要
new
以及您所询问的内容