A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

是这样的,现在想在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 的多,

6 个回复

倒序浏览
顶一下~
回复 使用道具 举报
用自己的就在类中创建,如果别人有创建好的,你需要用,那么就通过构造器把地址值引用传给你!
回复 使用道具 举报
这就涉及了多态了,你用传值方式,可以增加扩展性,灵活性。
private Student stu ;
   public Demo(Student stu){  
比如这里可以传入Student类对象,也能传Student子类对象,这样就增强了扩展性了,然后也增强了灵活性,如果你自己写死在里面Student stu = new Student();这样只能用这个Student对象,如果是传值方式可以是任意Student对象
      this.stu = stu;
}
回复 使用道具 举报
第二种方法比较好点吧,我也是刚刚学,不太懂。不直接调用,用定义好的方法比较好点
回复 使用道具 举报
这两种方式有什么区别吗,
当然有区别   
前者是声明的时候 直接传参数  
用到的地方 有单例 工厂  还有。。

后者是自己NEW 对象。


实现的效果又有什么不同
效果 看起来是一样的。。 深挖要大神来解释。
回复 使用道具 举报
工厂模式吧,记不清了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马