Skip to content

Instantly share code, notes, and snippets.

@HabaCo
Created June 3, 2014 12:50
Show Gist options
  • Save HabaCo/67cb3494de22110682f2 to your computer and use it in GitHub Desktop.
Save HabaCo/67cb3494de22110682f2 to your computer and use it in GitHub Desktop.
class 概敘
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