Created
June 3, 2014 12:50
-
-
Save HabaCo/67cb3494de22110682f2 to your computer and use it in GitHub Desktop.
class 概敘
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class 類別基本理論 | |
| class 是個很抽象的東西,可以把它當成是"設計圖"。 | |
| 用人來比喻,一點一點的建構出來: | |
| 先不考慮公有(public)與私有(private) | |
| 我們定義一個人 | |
| **(類別) | |
| public class People{ | |
| } | |
| Stpe1 .. | |
| 一個人會有哪些部位 -- 手、眼、耳、鼻、口、.. | |
| **就是 attribute 也叫 variable、field (屬性、變數) (註1) | |
| class People{ | |
| int hand; | |
| int eye; | |
| int ear; | |
| int nose; | |
| int mouth; | |
| .. | |
| .. | |
| } | |
| Stpe2 .. | |
| 一個人可以做甚麼 -- 跑、跳、游泳、騎車 | |
| **就是 Method (方法) | |
| class People{ | |
| .. | |
| .. | |
| void run(); | |
| void jump(); | |
| void swim(); | |
| void bike(); | |
| .. | |
| .. | |
| } | |
| Stpe3 .. | |
| 人在做動作的同時可能會用到身體的某個部位 | |
| **透過 Method 存取 attribute | |
| class People{ | |
| .. | |
| .. | |
| void run(){ | |
| hand往前擺; | |
| hand往後擺; | |
| } | |
| void jump(){ | |
| eye視線上移; | |
| eye視線下移; | |
| } | |
| .. | |
| .. | |
| } | |
| Stpe4 .. | |
| 可以得知一個類別需要有擁有的東西 | |
| public class People{ | |
| --成員變數 | |
| int eye; | |
| .. | |
| .. | |
| --成員方法 | |
| void run(); | |
| } | |
| Final Step5 .. | |
| 最後我們要根據設計圖製造一個人出來 | |
| void main(){ | |
| People p = new People(); | |
| // 產生一個人的"物件" | |
| p.run(); | |
| // 使人跑步 (呼叫人擁有的 method) | |
| p.jump(); | |
| // 使人跳躍 (呼叫人擁有的 method) | |
| } | |
| 結 .. | |
| 類別本身設計出來是沒有一個實體的,需要透過"宣告"的過程將它實體出一個物件來, | |
| People p = new People(); | |
| 其實跟宣告字串差不多 | |
| String s = new String(); | |
| 因為 String 也是類別 | |
| ================================ | |
| 註1: | |
| attribute = variable = field | |
| 也叫成員(member)變數 | |
| method = function | |
| 也叫成員(member)方法 | |
| 補充1: | |
| 在設計類別的時候有時候會將上建構子,建構子會與類別【同名】並【不具任何型別】 (包括 int、void..), | |
| 目的通常是在建立物件的同時給予初值 ,當然,建立物件後再給也可以,這牽扯到其他概念 | |
| 而人的建構子為: | |
| class People{ | |
| People(); | |
| } | |
| 補充2: | |
| 成員變數、方法可以再加上 | |
| public 公有:任何類別皆可以直接存取使用,延伸類別(繼承)可以使用。 | |
| private 私有:只能透過自己本身擁有的 Method 存取,不可繼承。 | |
| protected (default)被保護的:存取條件限制,僅同 package 可以存取,延伸類別(繼承)可繼承但具有相同限制。 | |
| **public>protected>default>private | |
| 補充3: | |
| 類別可以空白,但是設計類別目的是為了產生物件,所以基本上會給予variable及method |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment