你在哪里初始化你的对象?

时间:2017-06-15 18:44:26

标签: java android oop

我正在尝试创建一个计算器应用程序,用于存储按下按钮的次数,然后使用该信息执行各种任务。我认为最好创建一个单独的java文件,其中包含要引用的所有对象及其信息。我在调用我之前在主要活动中设置的对象时遇到了一些问题。我知道我必须初始化对象,但我不知道在哪里做,如果我可以,实际上,在一个类中创建多个对象。

公共类PriceObjects {

public class valuesA {
    public int freqDayA = 0;
    public int freqWeekA = 0;
    public int totalDayA = freqDayA*2;
    public int totalWeekA = freqWeekA*2;
}

public class valuesB {
    int freqDayB = 0;
    int freqWeekB = 0;
    int totalDayB = freqDayB*3;
    int totalWeekB = freqWeekB*3;
}
public class valuesC {
    int freqDayC = 0;
    int freqWeekC = 0;
    int totalDayC = freqDayC*4;
    int totalWeekC = freqWeekC*4;
}
public class valuesD {
    int freqDayD = 0;
    int freqWeekD = 0;
    int totalDayD = freqDayD*5;
    int totalWeekD = freqWeekD*5;
}
public class valuesCustom {
    int freqDayCustom = 0;
    int freqWeekCustom = 0;
    int totalDayCustom = freqDayCustom*40;
    int totalWeekCustom = freqWeekCustom*40;
}

}

这段代码是好还是我应该把它全部保存在MainActivity中? 谢谢!

2 个答案:

答案 0 :(得分:2)

要研究的东西可能是Model View Controller。我们的想法是您的业务逻辑/对象是模型,您的实际视图是您的xml布局文件,而“控制”您的视图的控制器是您的活动类。看起来你可以通过使用一些面向对象的设计来清理你的类。特别是你的价值观类。而不是为每种值创建一个单独的类,为什么不创建一些你可以重用的泛型呢?

public class Values {
    public int freqDay = 0;
    public int freqWeek = 0;

    public int totalDay;
    public int getTotalDay(){
       totalDay = freqDay*2;
       return totalDay;
    }

    public int totalWeek;
    public int getTotalWeek(){
       totalWeek = freqWeek*2;
       return totalWeek;
    }
}

这样,如果您希望能够存储多组值,您可以将它们保存在列表中,如下所示:

List<Values> myValues = new ArrayList<Values>();
myValues.add(new Values());

这些不是完美的解决方案/代码,但它只是让您更多地考虑对象/动态和可重用代码的东西。希望这能让你在某个地方开始寻找!

答案 1 :(得分:0)

这里你已经在类中创建了一个类,这不是编写OOPS代码的最佳方法。最好的是在一个类中创建两个类,通过使用不同的方法(如

)来计算所有计算逻辑
public class Calculator{

  public void Sum(){
  // Enter the logic
  }

  public void diff(){
  // Enter the login
  }
}

现在创建一个主类,在其中创建计算器类的对象,并从该对象访问不同的方法,如Sum和diff

public class mainClass(){
  public static void main(string args[]){
    Calculator obj = new Calculator(); // Object creation
    obj.Sum(); // Accessing the sum method
  }
}

通过这种方式你可以做到。它不是一个完整的代码,但这是oops所有的方法