Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以在类的构造函数中创建其他类的实例吗?_Java_Constructor_Instance - Fatal编程技术网

Java 我可以在类的构造函数中创建其他类的实例吗?

Java 我可以在类的构造函数中创建其他类的实例吗?,java,constructor,instance,Java,Constructor,Instance,对不起,我说的模棱两可。编辑问题 我想在类A的构造函数中创建类B和类C的实例。 我想知道这样做的缺点是什么。是的,您可以将B和C的实例传递给A的构造函数。这种方法没有问题 我可以在构造函数中这样做吗 是的,像这样: class A { A(B b, C c) { /* do something with b and c */ } } 这种方法有什么问题吗 这是一个名为的模式,它是维护软件组件之间松散耦合的好方法 这并不是说你想不出有什么问题;只是这是一种广泛使用的模式。是的。没有问题,这叫

对不起,我说的模棱两可。编辑问题 我想在类A的构造函数中创建类B和类C的实例。
我想知道这样做的缺点是什么。

是的,您可以将B和C的实例传递给A的构造函数。这种方法没有问题

我可以在构造函数中这样做吗

是的,像这样:

class A {
  A(B b, C c) { /* do something with b and c */ }
}
这种方法有什么问题吗

这是一个名为的模式,它是维护软件组件之间松散耦合的好方法


这并不是说你想不出有什么问题;只是这是一种广泛使用的模式。

是的。没有问题,这叫做依赖注入。这就是参数的用途。像普通方法一样的构造函数可以有参数,将参数传递给它是正常的。标题表示将其他类(B,C)的实例传递给a正好相反。因此,在标题中,您实际上询问了a的构造函数中类B和C的实例化,例如,关于在A的构造函数中创建B和C类型的对象(这很糟糕,导致紧密耦合)。标题应与问题中的标题相同。请使标题与问题一致。目前,标题与问题正好相反。