是否可以通过创建一个对象而不是多个对象来访问Java构造函数
让我来解释一下我试图在这个构造函数中实现什么。如您所见,我有3个构造函数,要获得每个构造函数的输出,我必须创建3个对象。是否可以通过仅创建1个对象而不是创建3个对象来获得所有3个构造函数的输出,从而获得3个输出?如果不可能,请别人解释为什么不可能,或者如果可能,然后告诉我怎么做。谢谢是否可以通过创建一个对象而不是多个对象来访问Java构造函数,java,constructor,constructor-overloading,Java,Constructor,Constructor Overloading,让我来解释一下我试图在这个构造函数中实现什么。如您所见,我有3个构造函数,要获得每个构造函数的输出,我必须创建3个对象。是否可以通过仅创建1个对象而不是创建3个对象来获得所有3个构造函数的输出,从而获得3个输出?如果不可能,请别人解释为什么不可能,或者如果可能,然后告诉我怎么做。谢谢 public class Op{ public Op(String a){ System.out.println("Default"); } public Op(String a, int b)
public class Op{
public Op(String a){
System.out.println("Default");
}
public Op(String a, int b){
System.out.println("String and Int");
}
public Op(String a, String c, int b){
System.out.println("String, String & Int");
}
public static void main(String args[]){
Op d1 = new Op("lol");
Op d2 = new Op("Hi",21);
Op d3 = new Op("Bye","Cube",47);
}
}您可以使用此 输出是
Default
String and Int
String, String & Int
你也可以反过来做,你也可以调用一个超级。。。调用超类的构造函数之一的构造函数使用构造函数链接。。
公开课{
public Op(String a) {
System.out.println("Default");
}
public Op(String a, int b) {
this(a);
System.out.println("String and Int");
}
public Op(String a, String c, int b) {
this(a, b);
System.out.println("String, String & Int");
}
public static void main(String args[]) {
Op d3 = new Op("Bye", "Cube", 47);
}
}这是在修改构造函数还是不修改构造函数的情况下发生的?对于参数较少的构造函数调用参数较多的构造函数来说并不罕见,因为有些值被设置为某个默认值。您可以随意处理不安全的类,这是非常不受鼓励的,但不修改构造函数是否可行@格洛盖特
public Op(String a) {
System.out.println("Default");
}
public Op(String a, int b) {
this(a);
System.out.println("String and Int");
}
public Op(String a, String c, int b) {
this(a, b);
System.out.println("String, String & Int");
}
public static void main(String args[]) {
Op d3 = new Op("Bye", "Cube", 47);
}