物件導向程式語言速成

這標題會不會下的太扯,真的可以速成??? 可以的,只要觀念正確,觀念正確就是打通任督二脈,在程式語言的世界裡,只要任督二脈打通,那學甚麼都很快了。

至於甚麼是物件導向程式語言的任務二脈呢?首先要有物件的基本觀念,如下開始囉~~~

物件導向程式語言的三大特性:

  • 封裝:Abstract data type (Encapsulation)。用語法單元(Class),將屬性(Variable)[變數]&方法(Method)[操作],包裝起來。
  • 繼承:Inheritance。當A繼承B (A is a B);A extends B
  • 多型:Dynamic binding (Polymorphism)。用父類別(介面)的參用,指向子類別的實例,可用子類覆寫方法。

甚麼~~~有看沒有懂,好吧~簡單的說~

  • 封裝: Class大括號內只有屬性跟方法,不能亂放其他東西。方法同名怎麼辦,就有Over Load的問題。
  • 繼承: 如果你不想要亂改別人的Code導致問題就繼承他,然後給他覆寫方法(Over Write)
  • 多型:所以一切都是物件就對了,如果工具沒有自動帶出來方法,不要亂寫。

確定這樣已經打通任督二脈了嗎?沒有喔只有一半,另一半請看下方~~~

OOP的世界裡,所有的一切都是物件,但物件有兩種(沒錯跟斯斯有兩種是一樣的):

  • 基本型別:整數(byte、short、int、long)、浮點數(float、double)、字元(char)、邏輯(boolean),只要不是以上這四個就是物件型別,所以你說String是甚麼鬼勒?當然是物件型別的東東囉。
  • 物件(或參用)型別 : 這跟記憶體的配置有關,Global區域:放被下了static修飾子的東東,等同於全域物件,特點是不用new就可以用。另外stack區域放基本型別跟參用,參用連接的地方是heap區域,就是被new過,也就是已經實例化(instance),請參考這篇

好啦~~~以上就是OOP的任督二脈了~~~ 至於其他,全部都是招式組合出來的,例如frameWork本身就是拳譜,你高興的話自己編一套組合拳也可以,還有例如NuGet就是拳譜集散地,組合再組合,之後就是怎麼去用的問題,這就是OOP的世界,因為甚麼都沒有,所以甚麼都不奇怪,自由度很高的。

More From Forest Beat

桜のフリ

設定Docker中node-Red的掛載

容器最強的部份,就是把資料分離出來,因此要設定給容器一個host的掛載位置,那麼設定檔與資料內容就會分離出來,並存放在host的資料夾中。在Synology NAS,要先建好一個給Docker專用的「共用資料夾」,然後在該共用下建立新的資料夾,記得要設定為明確權限,並且給予Everyone的寫入權限,這樣就可以囉。
技術
0
minutes
三ツ峠の紅葉のフリ

Docker安裝node-Red設定檔settings.js的位置

如果採用不將資料掛載出來的方式建立dockek的NodeRED,那設定檔會在哪邊呢? 要如何進行修改呢?答案很簡單,要能夠終端機到容器中,然後編輯/usr/src/node-red/node_modules/node-red/settings.js
技術
0
minutes
チューリップ畑のフリ

Docker使用bridge與host網路的差異

Docker使用bridge網路的好處是封閉但是可以聯網,容器彼此之間也無法辦訪,可以做到簡單的隔離,port可以與host重複,反正在轉port即可。host網路就有點危險了,就是實實在在以host的網路進行連線,因此同網路中,能夠看見它,除此之外,不可以與host主機使用相同的port,例如80已經被host用掉的,就不能再容器中使用80。
技術
0
minutes
つくしのフリ

用Docker佈署新的服務

下載專用的Image檔後,就可以副本產生容器,所以要有多少個都沒問題。因為是共用Image檔案所以會很省空間,另外資料可以掛載出來,這樣又能做到完全分離,例如Mariadb資料庫,可以把資料與設定檔掛載出來,日後要重灌或更新容器就很簡單。
技術
0
minutes
spot_imgspot_img