【问题标题】:when must I create object?我什么时候必须创建对象?
【发布时间】:2021-08-16 02:18:24
【问题描述】:

我有一个用“打印”方法显示的类

public class View {
    public View() {

    }
    public void print(String str) {
        System.out.println(str);
    }
}

和带有逻辑的类,例如,我将在哪里使用 View 类对象

public class Logic {
    public Logic() {

    }
}

我什么时候必须创建对象:在构造函数中还是在方法中,哪个会使用这个对象?

public class Logic {
  private View view;
     public Logic() {
        view = new View():
     }
     public someMethod(String string){
        view.print(string);
     }
}

public class Logic {
         public Logic() {
         }
         public someMethod(String string){
            View view = new View();
            view.print(string);
         }
    }

【问题讨论】:

  • 为什么是这些对象? “逻辑”是否包含“视图”?它们中的任何一个都封装了 any 现实世界的概念吗?如果它们只是代码的容器,那么您应该首先使用静态方法而不是分配任何对象。 “把所有东西都扔到一个不做任何事情的对象中”的心态已经过时,只有在 90 年代学会编程并且从未学习过任何最新材料的教师教授。
  • 考虑通过构造函数参数在逻辑中传递视图。
  • 好吧,如果要调用非静态方法,则需要创建一个对象。是在构造函数中创建对象并重用它还是在方法中创建它取决于您,并且取决于其他因素。在您的情况下,print() 甚至不必是实例方法,因此对于该特定方法,根本不需要实例(当然该方法必须是静态的)。

标签: java class object oop


【解决方案1】:

我会使用第二个选择,因为它对我来说更方便,并且会像这样缩短它:new View().print(string);。但是如果你想使用你在其他类中创建的这个对象,那么首选会更好(使用getter)。

【讨论】:

  • 谢谢!使用 getter 使用这个对象的好主意
猜你喜欢
  • 2014-11-08
  • 2013-10-23
  • 2011-03-18
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
相关资源
最近更新 更多