---
# System prepended metadata

title: JAVA Object 以遊戲概念解釋
tags: [Java]

---

# JAVA Object 以遊戲概念解釋


###### tags: `Java` 

---
:::warning
寫在前面:以下為自己腦補Object的概念，如果有錯誤歡迎告訴我XD
:::


## Object

利用遊戲人物的概念
### 物件(object) = 人物
### 屬性(property) = 人物屬性
```
身高、體重、基本資訊，
還有這個人物的種族、會什麼技能等等。
```
### 類別(Class) = 種族
```
看你是矮人族、精靈族或巨人族，
你都有自己天生的種族(main)，
種族只能一種，混血也算一個種族XD
```

類別(Class)的注意事項:
1. 類別名稱建議以大寫英文字母為字首。
2. 成員存取修飾子有：private(私有成員)、public(公開成員)、protected (保護成員)及預設階層(default即是不宣告)四種。
其中private私有成員只供自身類別內部成員存取。public公開成員不受任何限制，可供外界直接存。
    ```
    private = 公會頻道
    public = 公會布告欄ro公開資源
    ```
3. 類別存取修飾子有public與預設階層(不宣告)兩種，屬於public的類別可在不同套件使用。若為預設階層，只能用在相同套件。
4. 一個 *.java程式檔可以定義多個類別，但只能宣告一個public的類別，且public的類別名稱須和程式檔名相同。
    ```
    你可以學會別的種族的類別屬性技能，
    但是無法改變自己天生的種族
    (有main的那個Class)
    ```
## 封裝(Package) =  遊戲世界
每個package裡面都有各自不同的設定與類別屬性，最簡單的概念就是打包好帶走的意思XD

---

## 建立JAVA物件Object


### 宣告+物件建立一次搞定:
<span class="code1">類別名稱 物件名稱 = new 類別名稱();</span>
ex:
Ccar car2 = new Ccar(); 

也可以先宣告再建立物件，分成二行寫:
ex: 
Ccar car2; 
car2 = new Ccar();


## 存取公開的類別屬性

### 用「點」呼叫
要存取公開屬性，只要在自訂名稱後面加一個<span class="code1"> . </span>就可以了~

ex:
car1.gas = 40;

方法(技能)也可以拿來存取使用:
ex:
car1.maxDistance();

也可以直接指派給變數並設定值給變數(自訂變化技能):
ex:
ouble distance = car1.distance(20);


---


## 封裝資料(package)
就是把人物打包帶走XD



---

## 多載(Overload)類別內相同方法多用

簡單的說就是**同一個技能**可以砍怪砍柴砍你想砍的東西，只要「值」符合技能條件就會觸發XDD
















---
<span class="code1"></span>
<style>
h2 {
    color: #2383B8;
}
h3 {
    color: #1AA340;
}
h4 {
    color: white;
    background-color: #2383B8;
    padding:8px;
}

.code1 {
    padding: 2px 4px;
    font-size: 90%;
    color: #c7254e;
    background-color: #f9f2f4;
    border-radius: 4px;
    font-family:'Fira Code';
}
.code {
    padding: 2px 4px;
    font-size: 90%;
    font-family:'Fira Code';
}
</style>