2017-06-15 56 views
0

我想创建一个计算器应用程序,它存储一个按钮按下的次数,然后用该信息执行各种任务。我认为最好是创建一个包含所有对象及其信息的独立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

这就是为什么你有构造函数:https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html – Zakir

+0

@zakir是正确的。编写一个类值(类以大写字母开头)并使用新的实例化您的需求,或者,可能更适合您的场景,使用工厂:https://www.tutorialspoint.com/design_pattern/factory_pattern.htm – sorencito

+0

By这样,没有人需要冷落你。你是新的,并试图学习。继续提问,做你的研究,你会到达那里。 ;) –

回答

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

这些都不是完美的解决方案/代码,但它只是有一点让你更多地考虑对象/动态和可重用的代码。希望这给你一个开始寻找的地方!

0

那么你在这里创建了一个类,这不是编写OOPS代码的最佳方式。最好是在一个类中把使两类所有你calculater通过在不同的方法,如

public class Calculator{ 

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

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

现在做一个主类,你创建的计算器类和访问不同的方法,如点心和DIFF从一个对象逻辑对象

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

这样你就可以做到。它不是一个完整的代码,但这是所有跟随oops的方法