任何人都可以通过描述使用参数化构造函数的好处来帮助我 我知道构造函数用于初始化对象,参数化构造函数用于通过传递特定值来初始化对象。
计划1 //公共类Pc {
// int id;
// String name;
// public void display(int x, String n) {
// id = x;
// name = n;
// System.out.println("id:" + id + "and name is:" + name);
// }
// public static void main(String[] args) {
// Pc obj1 = new Pc();
// obj1.display(12, "arun");
// obj1.display(23, "cfggg");
// }
//}
program 2
public class Pc {
// int id;
// String name;
// public void Display() {
// System.out.println("id is:" + id + " and name is:" + name);
// }
// public Pc(int id, String name) {
// this.id = id;
// this.name = name;
// }
// public static void main(String[] args) {
// Pc obj1 = new Pc(12, "arun");
// obj1.Display();
//Pc obj2 = new Pc(23,"aaa");
// obj2.Display();
// }
//}
是否有任何逻辑在创建不同的对象并使用参数化构造函数初始化它而不是使用方法
答案 0 :(得分:0)
根据我的经验,它可以节省您必须单独调用每个setter方法。您也不想担心有人在使用您的类时必须通过设置器设置每个单独的值,然后才能正确使用这些方法。只需在构造函数中输入所需的所有值,就可以了!
答案 1 :(得分:0)
总的来说,是一样的。
唯一的区别是你班上有一个final
变量。
在声明最终变量(典型的类constancts)或构造函数时,您只能为最终变量赋值。
答案 2 :(得分:0)
如果你问为什么我们有ArrayList(int)
(设置容量),ArrayList(Collection<? extends E>)
(复制列表)等等,而不仅仅是{{3}然后使用mutator方法,有几个原因:
通常,应该设计类以使其实例不能处于无效状态。某些类需要信息来设置其实例的状态。在这种情况下,我们会在构造函数的参数中获取必要的信息。
不可变类非常有用,而且就其本质而言,设置其不变状态的唯一方法是在它们的构造函数中。如果需要在外部设置任何状态,那么执行此操作的方法是为构造函数提供参数。
答案 3 :(得分:0)
但请注意,构造函数中的参数太多是编写代码的难看方式。例如,您可以看到builder pattern。