Java 为什么默认情况下不调用构造函数
我听我的讲师说,在Java中,构造函数在主函数实际启动时被调用。但是当我尝试它时,我知道构造函数不是自动调用的。代码是这样的Java 为什么默认情况下不调用构造函数,java,constructor,Java,Constructor,我听我的讲师说,在Java中,构造函数在主函数实际启动时被调用。但是当我尝试它时,我知道构造函数不是自动调用的。代码是这样的 class Anther { static void method1(){ System.out.println("this is method"); } static void method2(){ System.out.println("this is second one"); } Ant
class Anther {
static void method1(){
System.out.println("this is method");
}
static void method2(){
System.out.println("this is second one");
}
Anther(){
System.out.println("Anther class");
}
public static void main(String[] args){
System.out.println("first line");
method1();
System.out.println("second line");
method2();
System.out.println("end of story");
}
}
结果是这样的
first line
this is method
second line
this is second one
end of story
为什么它没有打印“另一个类”。您还没有创建另一个对象。构造函数仅在创建对象时调用
静态资源无需装入对象即可访问。在创建类实例时会自动调用构造函数
Anther ant = new Anther();
在这里,您正在创建类的实例。此时将调用构造函数
我听我的讲师说,在Java中,构造函数被称为
当主电路真正启动时
我怀疑你的讲师真的会这么说。如果他有,那么他肯定是在什么地方弄错了,或者你可能误解了他
现在,事情是这样的:-
在使用新运算符实例化类之前,不会调用构造函数
因此,在上述情况下,当您使用以下代码时,将调用构造函数:-
Anther obj = new Anther();
在你的主要方法中
在上面的语句中,new操作符创建了另一个对象,并在新创建的实例上调用构造函数来初始化其状态
一定要和你的讲师澄清这件事 试试这个
public static void main(String[] args){
Anther a = new Anther();//you shoule create instance;
System.out.println("first line");
method1();
System.out.println("second line");
method2();
System.out.println("end of story");
}
-创建类的对象时,总是调用其构造函数
-不仅是它的构造函数,而且是它的超类构造函数,直到调用对象类构造函数为止
-对象的形成从超类流向子类
-您必须调用create另一个类实例,以便调用其构造函数
例如:
默认情况下,只有当我们有类对象的实例时,才会调用构造函数 i、 e 所以,这就是为什么没有调用默认构造函数 静态方法是类变量,它们在调用构造函数之前加载到JVM中 在本例中,超级构造函数超出了范围,之所以调用它是因为另一个类有基类[类A扩展类B] 希望这能消除你的疑虑 谢谢,
Pavan在google、bing或其他网站上搜索java oop trail:享受阅读吧!在任何情况下,考虑这个反问:java中的静态方法是什么?标记为接受的一个答案:请注意,在没有任何显式超类的情况下,始终存在一个超类。这就是目标。
public static void main(String[] args){
Anther a = new Anther(); // Creation of an object of class Anther
System.out.println("first line");
method1();
System.out.println("second line");
method2();
System.out.println("end of story");
}
Anther obj = new Anther();