在以下程序中,display方法不是Student4构造函数的一部分。那么,当使用Student4构造函数对象调用方法显示时,默认构造函数是否会调用显示方法?
class Student4 {
int id;
String name;
Student4(int i,String n){
id = i;
name = n;
}
void display() {
System.out.println(id+" "+name);
}
public static void main(String args[]) {
Student4 s1 = new Student4(111,"Karan");
Student4 s2 = new Student4(222,"Aryan");
s1.display();
s2.display();
}
}
答案 0 :(得分:6)
因此,使用Student4构造函数调用方法显示时 对象是否默认构造函数调用显示方法?
没有。由于显式声明了您自己的参数化构造函数,因此您的类中没有默认构造函数。 默认构造函数是没有参数的构造函数。
方法永远不是构造函数的一部分。构造函数是一种特殊方法,用于设置字段变量的初始值。构造函数用于创建类的实例,因此在创建对象时,Java首先调用构造函数。
答案 1 :(得分:1)
因此,使用Student4构造函数调用方法显示时 对象
您没有使用display
来调用the Student4 constructor
函数,而是使用您使用自定义构造函数构建的对象s1
和s2
。
答案 2 :(得分:0)
Student4(int i,String n){
id = i;
name = n;
display();
}
现在,您的自定义构造函数中会调用您的显示方法。干杯!
答案 3 :(得分:0)
据我所知,如果你没有定义任何显式构造函数,那么将创建默认构造函数。这里你已经声明了一个参数化的构造函数,所以在这里它不会创建任何默认的构造函数。
答案 4 :(得分:0)
如果没有在类中定义构造函数,Java会创建默认构造函数,但如果定义了参数化构造函数,则必须创建默认构造函数
public static void main(String args[]) {
Student4 s1 = new Student4(111,"Karan");
Student4 s2 = new Student4(222,"Aryan");
s1.display();
s2.display();
// if you create default constructor it will give you compile time issue
// The constructor Student4() is undefined
Student4 s3 = new Student4();
}
当您创建任何类的实例时,属性和方法是对象的一部分,因此您的对象负责调用您的方法而不是构造函数。