#初探物件導向 2017/11/30 廖惠平
##Out Lines - 物件導向 - 類別 - 封裝 - 方法 - 練習
#物件導向
##物件導向 - 所有的資料都是一個個物件 - 打包
##三大特性 - 封裝 - 繼承 - 多型
##五大原則 SOLID - 單一職責: Single Responsibility Principle(SRP) - 開放/封閉原則: Open/close principle(OCP) - Liskov替換: Liskov substitution principle(LSP) - 介面隔離: Interface Segregation Principle(ISP) - 依賴反轉: Dependency Inversion Principle(DIP)
#類別
##類別 - 自訂義的型別 - 物件的設計圖
##宣告類別 ``` class MyClass { //屬於這個類別的內容 } ```
##欄位 Field - 屬於這個類別的一項資料 - 通常是private - 對外透過屬性存取
##屬性 Property - 屬於這個類別的一項資料 - 通常是public - 擁有存取子(getter/setter)
#封裝
##封裝 - 核心概念:干我屁事 - 可以給別人看到/使用的 - 不可以給別人看到/使用的
##存取修飾詞 - 宣告這個資料的存取權限 - public - private - protected - internal - protected internal
#方法
##方法 - 重新使用的程式碼片段 - 依附在類別中 - 對物件內容進行操作
##宣告方法 - 方法名稱 - 參數 - 回傳值 - 要做的內容
##呼叫方法 - 物件實體.方法名稱(參數); - 接收回傳物件 = 物件實體.方法名稱(參數);
#練習
##練習 請以物件導向的方式重構「農夫渡河」