黑马程序员技术交流社区
标题:
突发疑问,把对象通过构造器传入和创建对象有什么区别啊
[打印本页]
作者:
1018chenhaiyang
时间:
2015-11-30 22:19
标题:
突发疑问,把对象通过构造器传入和创建对象有什么区别啊
是这样的,现在想在Demo类中使用一个对象,有两种方式:
class Demo{
public static viod main(String[] args){
Student stu = new Student();
}
} //这个是方式一
class Demo{
private Student stu ;
public Demo(Student stu){
this.stu = stu;
}
public static void main(String[] args){
stu.name = ......
stu.show(),
}
} //这是方式2
这两种方式有什么区别吗,实现的效果又有什么不同,在线程那块儿用方式2 的多,
作者:
队长别开枪是我
时间:
2015-11-30 22:26
顶一下~
作者:
jiangshicun007
时间:
2015-12-1 11:00
用自己的就在类中创建,如果别人有创建好的,你需要用,那么就通过构造器把地址值引用传给你!
作者:
黑夜中那颗星
时间:
2015-12-1 22:06
这就涉及了多态了,你用传值方式,可以增加扩展性,灵活性。
private Student stu ;
public Demo(Student stu){
比如这里可以传入Student类对象,也能传Student子类对象,这样就增强了扩展性了,然后也增强了灵活性,如果你自己写死在里面Student stu = new Student();这样只能用这个Student对象,如果是传值方式可以是任意Student对象
this.stu = stu;
}
作者:
anuo
时间:
2015-12-2 09:19
第二种方法比较好点吧,我也是刚刚学,不太懂。不直接调用,用定义好的方法比较好点
作者:
冰霜之卅
时间:
2015-12-2 13:07
这两种方式有什么区别吗,
当然有区别
前者是声明的时候 直接传参数
用到的地方 有单例 工厂 还有。。
后者是自己NEW 对象。
实现的效果又有什么不同
效果 看起来是一样的。。 深挖要大神来解释。
作者:
Little_jie
时间:
2015-12-2 21:50
工厂模式吧,记不清了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2