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

标签 java android oop

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

公共(public)类 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 中? 谢谢!

最佳答案

需要研究的内容可能是 Model View Controller 。这个想法是,您的业务逻辑/对象是模型,您的实际 View 是您的 xml 布局文件,而“控制”您的 View 的 Controller 是您的 Activity 类。看来您可以通过使用一些面向对象的设计来清理您的类。特别是你的值(value)观类(class)。与其为每种值创建一个单独的类,为什么不创建一些可以像这样重用的通用类呢?

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());

这些不是完美的解决方案/代码,但它只是让您更多地思考对象/动态和可重用代码的一点东西。希望这能为您提供开始寻找的地方!

关于java - 你在哪里初始化你的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44574764/

相关文章:

java - Android 在 OnMAMCreate 方法处循环

android - OnItemClickListener() - Android ListView

c++ - oo游戏的 "concept"

java - 当页面中存在两个框架时如何移动物理鼠标

java - Android中Base64文件上传IllegalArgument异常

java - 使用java在控制台绘制进度条

php - 使用空格访问类属性

android - Gradle - 选择性模块编译(否则重用 jar)

android - 为什么我的 Android SwipeRefreshLayout 不刷新?

c# - 为什么类实例的私有(private)成员在 Equals() 方法体中可用?