---
# System prepended metadata

title: 'Class:'
tags: [Java, ' constructor']

---

---
tags: Java, constructor
---
# Class:
https://github.com/hryjosn/java_class_tutorial

## :memo: Class tutorial
##### 1. 類別
    某人事物的設計藍圖，定義它的內部有哪些功能，哪些元素


類別中通常含有以下三個元素
1. 建構元 constructor
2. 資料成員
3. 函數成員

參見class_ex1.java
##### 2. 函式成員的多載
    重點：函式名稱相同，傳入的參數型態或是數量不同

參見class_ex2.java

##### 3. 修飾子
      public、private、protected的主要核心概念為權限，三者分別為不同等級的權限
1. 設定 Private 就只有類別內的成員可以存取該資料，以達到保護的作用
2. 設成 Public 外部的類別都可以存取該資料
3. protected 牽涉到extends，未來有機會再補充．

參見class_ex3.java

##### 4. 建構元(Constructor)
     通常是用來對物件的資料成員做初始化(initialization)，設定物件的初值

1. 建構元的名稱必須與其所屬之類別的類別名稱相同
2. 建構元不能有回傳值
3. 建構元在建立物件的時候會被自動呼叫
4. 建構元也可以多載
5. 建構元之間呼叫的方式用 this()
6. 建構元可省略，java會幫你建一個，但如果你有創造有參數的建構元，就一定要傳值進去否則會錯：因為Java就不會幫你自動建立建構元
   
參見class_ex4.java

##### 5. 類別函數與類別變數
      視情況補充


---
> 注意：一個 Java 檔只能一個 public 類別喔，且必須跟檔名相同 !!

---
##### Exercise:
1. 定義三種角色職業
    1. 弓箭手 (HP:50, Att:30, MP:10)
    2. 狂戰士 (HP:90, Att:15, MP:5)
    3. 魔法師 (HP:60, Att:40, MP:30)
2. 每個角色都要能夠
    1. 攻擊
    2. 詠唱（喊出自己的技能名稱）
    3. 穿戴至少一項武器
3. 使用多載、修飾子、static
   