2016-03-03 21 views
3

讓我們考慮下面的java程序:Java:可以只使用靜態方法和字段作爲過程範式嗎?

class Helper{ 
public static int add(int a,int b){ 
    .... 
} 
} 

public class Calculator { 
    public static void main(String[] args){ 
    System.out.println(Helper.add(5,10)); 
    } 
} 

我的意思是,如果我使用Java,但我不創建類的任何實例,並在所有類我只用靜態方法和字段是否意味着我使用的程序編程範式但不面向對象?

+4

我喜歡這個問題。我不確定答案應該是什麼,但我的第一個初始雖然是「是的,當然」。然後,我開始考慮不同的場景,您調用的靜態方法會在表面下創建自己的對象。但這取決於問題的意圖和定義,我猜。 – KjetilNordin

+0

如何以不包含OOP的方式定義過程範例? AFAIK程序編程只是簡單地說你會有變量來存儲數據和操作它們的過程。 OOP是什麼,除了OOP也要求兩者緊密結合在一起。 – biziclop

回答

3

是的 - 我想人們可以稱之爲程序編程。我想你會有包含值的靜態變量,這些值將被方法改變(這就是副作用),所以這種風格不是'功能'編程,不需要副作用。

這似乎是一件很奇怪的事情 - 如果你有一項任務需要程序編程使用程序語言。

在我看來,你正試圖使用​​電鋸來敲擊指甲,當時有完美的錘子。

1

您將執行函數返回值,而不會對所述函數外的變量/對象(又名「副作用」)產生任何影響。簡言之就是功能性編程。有關功能編程的更多信息,請參閱this與程序的區別,或者參閱that

編輯:上面假設你不使用靜態字段。

+1

由於OP提到使用靜態「字段」,我認爲他可能打算使用副作用;因此這不是函數式編程的imho, – Elemental

相關問題