2017-06-15 58 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的方法