{%hackmd @ZZRT/CSS %} # <span class="block"> Lesson 0 </span> --- ## Java 簡介 ---- **性質** - 高階語言 - 編譯語言 - 物件導向 - 跨平台 ---- ## **Java** vs **Javascript** 他們的關係大概和**牛**和**牛蒡** **馬**和**馬拉松**差不多 除了名字以外的東西都差滿多的xD 不要搞混哦... ---- 這明明就是Javascript的寫法.. ![](https://i.imgur.com/JZb7GXO.png) --- ## 甚麼是物件導向? What is OOP? ---- ### 寫程式實質上就是在==操作資料== ---- ## **資料** ---- ### 這裡有些資料 他們看起來雜亂無章 ![](https://i.imgur.com/7BihetU.png) ---- ### 整理一下 ![](https://i.imgur.com/VkV9Fv6.png) ---- ### 再整理一下 ![](https://i.imgur.com/zTL4UeH.png) ---- ### 這其實就是物件和類別 ![](https://i.imgur.com/ejFoQL8.png) ---- What is OOP? ---- ## 類別 像是藍圖,上面寫著製作物件的方法(還有操作的方法) ## 物件 是一群資料(記憶體)的集合 物件都是獨一無二的 ---- ## 基礎型別 | 型別 | 舉例 | | -------- | -------- | | char | `'c'` | | float | `8.129` | | int | `8129` | | boolean | `true` | 他們不是物件 ==物件都是獨一無二的== ```java int a = 1; int b = 1; a == b; // true ``` ---- Why OOP? - **易於維護、擴充** - **提高可讀性** - **減少重複的程式** - 有許多以物件導向為基礎的設計模式讓開發更快速 --- 物件導向4要素: 封裝、繼承、多型、抽象 ---- # 封裝 ---- 其實我們已經使用了第一個原則: 封裝 封裝是甚麼呢? ---- ### 封裝物件的操作方法 有了車子卻不知道要怎麼開? 寫在藍圖裡,一目了然 ![](https://i.imgur.com/RqyGfX8.png) ---- ### 封裝複雜的操作方法 Driver只要知道怎麼往前開,不用知道設置每個馬達的速度的方法 ![](https://i.imgur.com/Jf5QBXm.png) ---- ## 封裝資料 改變速度前經過檢查,太快會翻車 ![](https://i.imgur.com/B22PIxD.png) ---- 關於 繼承、多型、抽象,以後會有更詳細的說明
{"metaMigratedAt":"2023-06-16T20:41:42.990Z","metaMigratedFrom":"YAML","title":"Lesson 0","breaks":true,"slideOptions":"{\"transition\":\"fade\",\"parallaxBackgroundSize\":\"2100px 1000px\",\"defaultTiming\":120}","contributors":"[{\"id\":\"a41c05df-55bf-44dc-9b5f-6e53858b0a77\",\"add\":3462,\"del\":1415},{\"id\":\"35809032-c270-45a6-adab-a7e7a63da25b\",\"add\":5229,\"del\":5557}]"}
    193 views
   owned this note