[英]When should I create classes in order to avoid huge main method?
這只是菜鳥提出的一個問題:如何避免使用大型main
(對於JavaFX,請使用start
)? 我傾向於創建一類項目,但是我知道這是不正確的。 基本上我不知道何時為特定任務創建專用類。
我希望這個問題不是那么愚蠢。
這不是一個愚蠢的問題。 根據您所說的,您可能不需要其他課程。 您可能只需要方法。 讓我們看一個簡單的例子:
public class MyClass {
public static void main(String[] args) {
int i = 4 + 2;
System.out.println(4 + 2);
}
}
容易吧? 但是現在,如果情況變得更加艱難。
public class MyClass {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
int k = i + (7 / 2) * 3 / 14;
System.out.println(i + " " + k);
}
}
}
現在顯然,這實際上並不困難。 但是,請注意有一種模式嗎? 我們取每個數字0-9,然后加上(7 / 2) * 3 / 14
7/2 (7 / 2) * 3 / 14
。 可以將其移至方法中:
int getNumber(int i) {
return i + (7 / 2) * 3 / 14);
}
現在,我們的代碼看起來更加簡潔,因為我們不必處理任何加法,除法或乘法
public class MyClass {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
int k = getNumber(i);
System.out.println(i + " " + k);
}
}
}
該示例可能看起來很愚蠢,因為它涉及一個非常簡單的數學問題,但要點是: 如果您重復執行某些操作,請將其放入方法中。
注意:方法也可用於拆分大型功能。 如有疑問,請分而治之!
看到這個:
void run() {
getInput();
tick();
render();
}
比這樣的東西干凈得多:
void run() {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a number: ");
String string = reader.nextString();
MyObject obj = new MyObject();
obj.doSomething(string);
obj.render();
}
如果查看該代碼,您將不知道它在做什么! 但是第一個示例是您要的,因為它分為清楚地標識它們所執行操作的方法。
無論如何,關於課程:
Google OOP! 有大量的寶貴資源。 對於大多數類,您可以將它們視為容器。 您可以創建一個類Wallet
,其中將包含Coin
並對其進行操作(請考慮spend
, remove
, add
)。
沒有愚蠢的問題:)
您詢問有關面向對象編程的概念。
在Java,C ++或Php Object中,目的是將代碼存儲到邏輯區域。 像生活一樣想象代碼。 想象一切都像一個對象。
例如,您的程序正在模擬汽車。
在您的代碼中,您將有一個Car類,一個Engine類,然后是一個繼承自Car和Car且包含Engine實例的BMW類。
在互聯網(使用Google)中,您會找到有關OOP工作原理的大量解釋。 所有這些將比我更好地解釋這一點。
如有任何疑問,歡迎您:)
我認為這是我在學習編程的過程中發展起來的。 雖然我的背景是使用perl腳本編寫的,而不是oop
將演示文稿與數據/邏輯分開。
意思是,一切都應該在類(或函數)中,並且從主線程中,您僅傳遞對象(或函數)數據,並且您以相同的方式獲取數據。
如果它執行一組特定的任務,請從中創建一個類。
如果可以將其用於其他目的,請對其進行分類。
如果執行特定操作,請從中執行功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.