创建类的新实例的不同方法?

时间:2017-03-13 22:28:48

标签: java class oop instance

我知道有很多不同的方法可以创建一个instance的{​​{1}},我对其中很多都不了解,但我刚刚见过这种定义。
我甚至不确定它是否正在制作一个新的class! 很少有误解,我不能很好地消化它。

任何人都可以解释下面的代码吗?

instance

上面的那个和下面的一个有什么区别吗?只要他们相同,你更喜欢哪一个?

new timer().scheduleAtFixedRate(new TimerTask() {
          @Override
        public void run() {
            ...
        }
    }, 0, 1000);

1 个答案:

答案 0 :(得分:1)

  

这个有什么不同吗?只要有相同的,   你更喜欢哪一个?

首先,我想指出@Carcigenicate在评论中所说的内容。

  

"除非timer()是a,否则我不希望第一个编译   构造函数,在这种情况下两者是相同的。"

我认为这是一个错误,您打算将Timer()写为构造函数调用。

下面的代码创建了一个Timer类型的匿名对象,当你想在那里执行某个任务但是不希望使用Timer对象时这很好用再次。基本上,您将无法在以后的代码中重新使用该对象

new Timer().scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                ...
            }
     }, 0, 1000);

下面的代码与上面的代码相同,不同之处在于此代码不是匿名object,而我们稍后可以在代码中重复使用object

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            ...
        }
    }, 0, 1000);
  

只要他们相同,你更喜欢哪一个?

这实际上取决于具体情况和情况,但如果我选择的话,我会选择第二个,原因如上所述。