重要的是「思考」,在OOP中需要改變思考 而在oop環境中進行編程/開發或使用OOP 範例。
我自己面對過很多次這個問題:爲什麼要使用OOPL或者 當我可以在程序中開發軟件時使用面向對象編程語言 編程語言?爲什麼要使用面向對象方法?它有什麼好處 什麼其他非OOP不?
我從許多來源看(許多書籍和文章的主題來命名!) 跟蹤的真正原因,打的基本基本思想或原則 其在那裏作爲軟件工程的一個範例。我認爲我發現 很簡單,這就是爲什麼我建議改變思維。
如果我們環顧四周,我們會看到圍繞着我們的事物以及我們直接或間接與 互動的事物。我們用姓名來識別他們,我們給他們。 不管事物是什麼,它們或者存在於真實平面或者概念平面 中,並且我們「知道」它們「識別」它們並與它們相互作用。而重要的是我們 '名字'他們。這個命名非常重要,因爲我們需要'姓名'來了解這種互動的「事物」和 。
今天吃了什麼?巧克力和咖啡。所以你已經與 巧克力和咖啡「互動」。現在巧克力和咖啡都是我們擁有的食物(人類) 已經給出了名字,並且我們認出了這些名字。而且,我們在我們的 瞭解我們與他們的互動 - 可以說保持我們的 與巧克力和咖啡的互動記錄,知道他們的名字與 交互。
交互是我在這裏使用的一個通用術語。其實在我們的例子中,在 的例子中,你已經執行了一個「行動」 - 吃東西。通過「吃」行動,你已經與巧克力和咖啡相互作用。現在想想這種方式,通過互動中的行動,咖啡是現實世界中的實體。 你可能會說'流程'。
Alice註冊了什麼課程?計算機科學。 計算機科學在世界上並不存在真正的存在,因爲存在一個人 或存在樹木或房子,或咖啡杯或其他'有形的東西'。它 是一個主題,'概念的東西'。計算機科學的研究有一些需要研究(或通過我們的智力 教師/過程進行交互)的'主題',例如離散數學,算法設計和分析,數據結構等。它們一起被命名爲學習主題'計算機 科學'。現在愛麗絲'學習'(互動)計算機科學。這裏發生了什麼 ?好的,如果我們現在想這樣說,並說愛麗絲是一件東西,對象。 計算機科學是一件東西,對象。
咖啡是對象。巧克力是對象。你再次是對象。我們發現 即對象與對象相互作用。太棒了!有人可能會驚歎!這就是 真實世界的場景!其實它是通過 抽象達成的概括。
這只不過是 - 在表面水平至少 - 命名與 的含義。或者你可以說'有意義的命名'。這是一個過程。這是非常自然的 ,對我們來說很明顯,我們只是忽略它。
在OOP中,我們只需要將自己帶入這種思維過程,知道並提醒自己「對象與對象互動」。哦! 只有這個想法。你必須記住,一個對象 可能會與自己交互!想想你,當你想到 時,你在做什麼?是啊!還有一件非常重要的事情我會在適當的時候來到 。雖然我認爲這很明顯。但在適當的時候。好。我們 真的用電腦嗎?其實我們解決問題。特別是那些我們試圖在我們的腦海中解決的問題。從廣義上說,我們是 模擬機器中的心理過程,這是我們設計的。記住AI是 在現實中仍然是一件遙遠的事情,並且存在哲學上的辯論和科學,關於計算機是否可以變得聰明。另一種方式是把它放在計算機上是否真的可以模擬真實的心智過程。但那不是我們要去的地方。別管它!
如果我們想通過我們 想在代表現實生活中possible.There 儘可能接近去計算設備來解決現實生活中的問題進來OOP「現實生活中的造型」一詞。可以看出,在解決 現實生活中遇到的問題,無論是發射航天飛機,還是保留客戶和產品銷售信息進行處理,我們都做抽象,做了 計算,這是另一種形式的抽象過程,反過來我們處理與我們的思想精神上的對象 。因此,我們在抽象中表示真實的生活對象(概念 數字等對象),並使用抽象 過程處理它們,如數學中那樣。在計算機中,我們也希望代表對象,並且還希望以對象的形式表示進程。所以這裏 是面向對象,可以說是軟件工程。現在來到 這是'適時'來處理面向對象的另一個方面。
回到我們的例子,你吃了什麼?吃是一種行動,一種形式的互動。可以認爲這是一個過程,它可以被認爲是一個對象,就像一個進程在Non-OOPL中被認爲是'函數'或'例程'或'過程'一樣。在OOP中,我們可以表示(抽象) 飲食作爲一個過程體現爲一個對象。同樣的學習是一個對象。在 中,思考「事物」和「過程」的思路都被認爲是對象 ,並在計算機內存的虛擬平面中表示。因此, Alice-an Object-Studies-an object-Computer Science-an Object is based on OOP saying,據我們的論點。
我們可以在這裏寫一段代碼嗎?咱們試試吧。
class Alice {
private String name;
private String address;
private String stdID;
private Course courseOfStudy;
... other codes...
public void studies(Course sub) {
courseOfStudy=sub;
}
...
public Course getStudyCourse() {
return courseOfStudy;
}
}
class Course {
codes....
}
這種方法在OOP(這裏是Java代碼)中可以寫代碼。我給了一個簡單的編碼 。人們可以想出更好的編碼和設計方法,這取決於要編寫的軟件。在OOP設計中很重要的是 。所以我認爲在開始時應該提到 。這很重要!當談到OOPL 或OOAD時,我更喜歡這樣,「一切都是對象」。
那麼這就是我想說的。你可能會也可能不會喜歡它,但評論和 說出你的想法。
你打我「GIANT WALL OF TEXT」!這不是很有效......我打了「Downvote」!這是超級有效! – Puppy 2014-09-09 21:48:50