有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java构造函数链接。为什么我要在这个()中初始化一个参数

下面是我的一节课。我有一个问题:为什么我要初始化第三个参数(名字,sal,“Gurgaon”);在第三个构造函数public Employee1中(字符串名,int-sal)?我的意思是为什么我不能用“addr”代替初始化第三个参数-->;这个(名字,萨尔,地址)

public class Employee1 {
    public String name;
    public int salary;
    public String address;

    //default constructor of the class
    public Employee1()
    {
        //this will call the constructor with String param
        this("Chaitanya");
        System.out.println("Default");
    }

    public Employee1(String name)
    {
        //call the constructor with (String, int) param
        this(name, 120035);
        System.out.println(name);
    }
    public Employee1(String name, int sal)
    {
        //call the constructor with (String, int, String) param
        this(name, sal, "Gurgaon");
        System.out.println(name + " " + sal);
    }
    public Employee1(String name, int sal, String addr)
    {
        this.name=name;
        this.salary=sal;
        this.address=addr;
        System.out.println(name + " "+ sal + " " + addr);
    }

    public static void main(String[] args)
    {
        Employee1 obj = new Employee1();
    }
}

共 (1) 个答案

  1. # 1 楼答案

    如果您没有调用最后一个以地址作为参数的构造函数,那么您的第二个构造函数将如下所示:

      public Employee1(String name, int sal)
      {
        //call the constructor with (String, int, String) param
        this.address = "Gurgaon";
        System.out.println(name + " "+ sal + " " + address);
      }
    

    若地址未在此处初始化,地址将被打印为空。所以,就像上面的评论中提到的,你不需要调用最终的构造函数,如果你不想的话,甚至不需要调用一个