在java中使用参数化构造函数是什么?

问题描述:

我是一个java初学者,我想以简单的方式知道为什么你应该使用参数化构造函数,而不是编译器提供的默认构造函数。在java中使用参数化构造函数是什么?

感谢

+0

那么你会使用参数化的构造函数,如果你想在创建时设置某些变量。前'学生s =新学生(“罗布”);' –

+0

你用Google搜索了吗? – Sachin

通过默认构造函数,您的对象可能具有的任何属性都设置为0,false等等。如果你想立即设置属性,你可以使用参数化的构造函数。当然,使用你自己的构造函数也可以让你在创建对象之前(技术上是while)执行代码。

顺便说一句:“默认不会给属性设置任何值”的答案是错误的。例如,此代码:

public class Test { 
    private int test; 
    private boolean test2; 

    public static void main(String[] args) { 
     Test test = new Test(); 
     System.out.println(test.test); 
     System.out.println(test.test2); 
    } 
} 

将打印出“0”和“false”。

你需要使用参数化的对象,只要你愿意到任何类型的配置传递到你的对象。你可以用来设置这些信息,但是不仅在构造时间内传递这些信息的时间更短,更简洁,而且它还有创建不可变对象的良好实践,这些对象在构建后不能被修改,没有安装人员。例如,

class Student { 
    private final String name; 
    private final Date birthday; 
    public Student(String name, Date birthday) { 
    this.name = name; 
    this.birthday = birthday; 
    } 
} 

与任何面向对象语言一样,使用构造函数方法为对象分配和初始化内存。考虑到这一点,使用参数化构造函数方法将对象的属性设置为特定值,而默认值不会将任何值设置为任何属性。

除了路易·沃瑟曼所说的之外,还有很多情况下,从逻辑的角度来看,参数化构造函数是有意义的。假设你想创建一个Employee对象。员工必须具备某些属性才能被视为员工,例如姓名,社会安全号码,公司以及薪水(奴隶制是非法的)。因此,使参数化构造函数需要上述4个变量是合乎逻辑的。

构造函数可以帮助类初始化并设置值,以传递给它的一些属性。这可能是当前类的对象。 例如

class Education{ 
     String typeOfEducation;  //values are not set 
     String courseName;   
Education(String type,String name){ 
typeOfEducation=type; 
courseName=name;     //values are set 
       } 
        } 

希望这会有所帮助。

在Java中,构造函数是一种方法,它在使用new运算符创建对象期间由Java运行时调用。创建构造函数的原因可能是:

  • 要用默认或初始状态初始化对象,因为默认值可能不是您要查找的对象。例如,如果您有一个包含姓名和出生日期的人员类,则希望填充这些字段,而不是空的。因此,您可以将名称和出生日期的值传递给该类的构造函数,以便为该对象分配一个在该类中使用的值。

我很惊讶没有人在这个线程提出重载。参数化的构造函数还使用户能够根据创建时的信息不同程度地设置对象。你可以用方法重载来做到这一点。

例如:

public Car(long vin){ 
    this.vin = vin; 
} 

将设立一个汽车对象仅与VIN号码,而这样的:

public Car(long vin, String make){ 
    this.vin = vin; 
    this.make = make; 
} 

将创造额外的信息类似的Car对象。除了重载之外,您还应该考虑复制构造函数以获得“浅”与“深”对象副本的想法。以下链接有一个体面的例子:http://www.geeksforgeeks.org/copy-constructor-in-java/