java - 我的构造函数没有给出所需的输出

标签 java oop object constructor

    package rups;

    public class vipcustomer{


    private String name;
    private int creditlimit;
    private String emailid;

    public vipcustomer(){
    this("Rupali", 5000, "rupalisingh@gmial.com");
    System.out.println("Constructer with default values");
    }

    public vipcustomer(int creditlimit, String emailid) {
        this("Rups", creditlimit, emailid);
        this.creditlimit = creditlimit;
        this.emailid = emailid;
        System.out.println("Constructor with 1 default values");
    }

    public vipcustomer(String name, int creditlimit, String emailid) {
        this.name = name;
        this.creditlimit = creditlimit;
        this.emailid = emailid;
        System.out.println("Constructer with no default values");
    }
    public String getName() {
        return name;
    }

    public int getCreditlimit() {
        return creditlimit;
    }

    public String getEmailid() {
        return emailid;
    }
    }

    public class Main {
        public static void main(String args[]){
            new vipcustomer();
            new vipcustomer(5000, "sdhoahfsdh");
            new vipcustomer("Rups", 7000, "dfksjdfsjdfa");


    }
    }

输出

Constructer with no default values
Constructor with 1 default values
Constructer with no default values

这里的第一个构造函数应该将输出作为“具有默认值的构造函数”,但事实并非如此。我做错了什么?请帮忙。

最佳答案

在构造函数中,您可以使用 this 关键字调用同一类中的另一个构造函数。这样做称为显式构造函数调用


让我们分析一下你的代码,共有三个构造函数:

public vipcustomer()//------------------------------------------------(C1)
public vipcustomer(int creditlimit, String emailid)//-----------------(C2)
public vipcustomer(String name, int creditlimit, String emailid)//----(C3)

所以当你使用 :

new vipcustomer();

它调用这个构造函数:

public vipcustomer() {
    this("Rupali", 5000, "rupalisingh@gmial.com");
    System.out.println("Constructer with default values");
}

但请注意 this("Rupali", 5000, "rupalisingh@gmial.com");C3 时它调用 C3完成打印:

Constructor with no default values

第一个输出是:

Constructor with no default values

然后

Constructor with default values  

其他构造函数也一样。

this() 函数根据参数列表调用重载的构造函数。

看看这个:

关于java - 我的构造函数没有给出所需的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48130117/

相关文章:

java - 单个对象覆盖对象数组,不知道为什么

java - 返回两个数字的索引,以便它们加起来达到特定目标

java - 如果设备是纵向的,MediaStore.ACTION_VIDEO_CAPTURE 会使相机应用程序崩溃

javascript - Javascript 中 Singleton 对象的窗口示例?

java - 这是使用 "default"Java 访问对客户端隐藏类和方法的好做法吗

javascript - Object.assign 的奇怪行为

java/jetty 重载一段时间后不响应连接

java - eclipse中如何同时调试两个项目?

Matlab - OOP 方法

Java Hibernate json无限递归与自引用类