π 7μ₯
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP)μ΄λ?
- OOPλ κ°μ²΄λ₯Ό μ€μ¬μΌλ‘ νλ‘κ·Έλ¨μ ꡬννλ λ°©λ²λ‘
- OOPλ₯Ό μ¬μ©νλ©΄ μ½λμ μ¬μ¬μ©μ±κ³Ό μ μ§λ³΄μμ±μ΄ λμμ§λ€. κ°μ²΄λ λ°μ΄ν°μ μ²λ¦¬ κΈ°λ₯μ νλμ λ¨μλ‘ λ¬Άμ΄μ κ΄λ¦¬νκΈ° λλ¬Έμ, μ½λμ μ€λ³΅μ΄ μ€μ΄λ€κ³ μμ μ΄ μ©μ΄νλ€.
- κ°μ²΄ κ° μνΈμμ©μ ν΅ν΄ 볡μ‘ν κΈ°λ₯μ ꡬνν μ μμΌλ©°, μ½λμ κ°λ μ±λ λμμ§λλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ£Όμ νΉμ§
- μΊ‘μν (Encapsulation)
- κ°μ²΄μ λ΄λΆ μνμ νλμ μΈλΆμμ 보νΈνλ κ°λ μΌλ‘, κ°μ²΄μ λ΄λΆλ₯Ό λ³κ²½νμ§ μκ³ λ μΈλΆμμ κ°μ²΄μ μ κ·Όν μ μλλ‘ νλ€.
- μμ (Inheritance)
- λΆλͺ¨ ν΄λμ€μ νΉμ±μ μμ ν΄λμ€κ° λ¬Όλ €λ°μ μ¬μ¬μ©ν μ μλλ‘ ν΄μ£Όλ κ°λ
- λ€νμ± (Polymorphism)
- νλμ λ©μλλ₯Ό λ€μν λ°©μμΌλ‘ νΈμΆν μ μλλ‘ ν΄μ£Όλ κ°λ
κ°μ²΄μ ν΄λμ€
κ°μ²΄ (object)
- νμ€ μΈκ³μ μ‘΄μ¬νλ λͺ¨λ κ²
ν΄λμ€ (class)
- μ»΄ν¨ν° μΈκ³μμ κ°μ²΄λ₯Ό ꡬ체ν ν ν, μ€κ³λ
κ°μ²΄ μ§ν₯ μ₯μ
- νλ‘κ·Έλ¨μ μμ μ΄ μ©μ΄
- νλ‘κ·Έλ¨μ μΌλΆλ₯Ό κ°λ¨νκ² μ¬ μ¬μ© κ°λ₯
κ°μ²΄μ νν
κ°μ²΄ κ° μνΈμμ©
π‘
κ°μ²΄ μνΈμμ©μ λ©μμ§ μ λ¬κ³Ό μλ΅μ μν΄ μ΄λ£¨μ΄μ§λ©°, μ΄λ₯Ό ν΅ν΄ κ°μ²΄λ λ€λ₯Έ κ°μ²΄μ νλ ₯νμ¬ μνλ κΈ°λ₯μ μνν μ μμ΅λλ€.
π 8μ₯ μΈμ€ν΄μ€μ ν΄λμ€
κ°μ²΄(object) λμΆ μμ
π‘
κ° κ°μ²΄κ° κ°μ§κ³ μμλ§ν βμμ±βμ΄λ βλμβμ μ μνκ³ λμΆ, λμμμΌ λ³΄λ κ²
- μꡬμ¬ν μλ³ λ° λΆμ
- μ 무 μ μμ λ± μννΈμ¨μ΄μμ μ 곡ν΄μΌ νλ μꡬμ¬νμ μλ³νμ¬ μ 무μ λ°μ΄ν°λ₯Ό νμ
- κ°μ²΄ λμΆ
- λΆμν λ΄μ©μ κΈ°λ°μΌλ‘ κ°μ²΄μ μμ±κ³Ό λμ κΈ°λ₯, κ°μ²΄ κ°μ κ΄κ³λ₯Ό κ³ λ―Όν©λλ€.
- κ°μ²΄κ°μ κ΄κ³ λμΆ
- λμΆν κ°μ²΄λ€ κ°μ κ΄κ³λ₯Ό νμ ν©λλ€. μ΄λ₯Ό ν΅ν΄ μμ€ν μμ μΌμ΄λλ λ°μ΄ν° μ²λ¦¬ νλ¦μ μ΄ν΄νκ³ κ°μ²΄κ°μ μν κ³Ό μ± μμ λΆμ¬ν μ μμ΅λλ€.
- κ°μ²΄ λͺ¨λΈλ§
- κ°μ²΄λ€μ ꡬ쑰μ μνΈμμ© λ°©λ²μ λͺ¨λΈλ§νμ¬ μκ°ν
- κ²μ¦ λ° μμ λ¬Έμν
μ©μ΄ μ 리
π‘
κ°μ²΄(object)
νμ€ μΈκ³μ κ°μ²΄λ κ°λ
μ μΈ κ°μ²΄λ₯Ό λνλ΄λ μΆμνλ κ°λ
μ
λλ€. κ°μ²΄λ νΉμ ν μνλ₯Ό μ μ§νκ³ , κ·Έ μνλ₯Ό λ³κ²½ν μ μμΌλ©°, νμλ₯Ό μνν μ μμ΅λλ€.
- μμ±(λ°μ΄ν°)κ³Ό λ©μλ(νμ)λ‘ μ΄λ£¨μ΄μ Έ μλ€.
π‘
ν΄λμ€(class)
ν΄λμ€λ κ°μ²΄λ₯Ό μμ±νκΈ° μν μΌμ’
μ μ€κ³λμ
λλ€. κ°μ²΄λ₯Ό μ μνκ³ , κ°μ²΄κ° κ°μ§λ μμ±κ³Ό νμλ₯Ό μ μνμ¬ μ€μ κ°μ²΄λ₯Ό μμ±νλλ° μ¬μ©λ©λλ€. ν΄λμ€λ κ°μ²΄λ₯Ό μμ±νλλ° νμν ꡬ쑰μ νμλ₯Ό μ μνκ³ , κ°μ²΄μ μμ±κ³Ό νμλ₯Ό μ μνλλ° μ¬μ©λ©λλ€.
π‘
μΈμ€ν΄μ€(instance)
ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μμ±λ κ°μ²΄λ₯Ό μΈμ€ν΄μ€λΌκ³ ν©λλ€. ν΄λμ€λ κ°μ²΄λ₯Ό λ§λ€κΈ° μν μ€κ³λμ΄κ³ , μΈμ€ν΄μ€λ κ·Έ μ€κ³λλ₯Ό κΈ°λ°μΌλ‘ μ€μ λ‘ λ§λ€μ΄μ§ κ°μ²΄μ
λλ€. κ°μ²΄λ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ νμ§λ§, μΈμ€ν΄μ€λ ν΄λμ€μ ꡬ쑰λ₯Ό λ°νμΌλ‘ λ§λ€μ΄μ§ μ€μ²΄μ
λλ€. κ°μ²΄λ μμ±κ³Ό νμλ₯Ό κ°μ§κ³ μμ§λ§, μΈμ€ν΄μ€λ κ·Έ μμ±κ³Ό νμλ₯Ό μ€μ λ‘ κ°μ§κ³ μμ΅λλ€. λ°λΌμ, ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ κ°μ²΄λ₯Ό μμ±νμ¬ μΈμ€ν΄μ€λ₯Ό λ§λ€μ΄ λΌ μ μμ΅λλ€.
ν΄λμ€ Java μ½λ νν
package com.example.game;
public class Hero {
String name;
int hp;
void attack() {}
void run() {}
void sit(int sec) {}
void slip() {}
void sleep() {}
}
ν΄λμ€λͺ κ³Ό λ©€λ²λ³μλͺ μ λͺ λͺ κ·μΉ

ν΄λμ€ μ μμ λ°λ₯Έ ν¨κ³Ό
- μ μν ν΄λμ€λ‘ μΈμ€ν΄μ€ μμ± κ°λ₯
- ν΄λΉ ν΄λμ€λ‘ μμ±ν μΈμ€ν΄μ€λ₯Ό λ£μ μ μλ μλ‘μ΄ λ³μμ νμ
μ΄ μ΄μ© κ°λ₯ν΄ μ§λ€.
- ex) Hero νμ μ λ³μ (Hero hero;)
π‘
ν΄λμ€λ₯Ό μ μνλ©΄ Javaμμ μ΄μ© κ°λ₯ν νμ
μ μ’
λ₯κ° μ μ λμ΄λλ€.
πμ°μ΅ λ¬Έμ
8-1

package com.example.Exam;
public class Cleric {
}
8-2

package com.example.Exam;
public class Cleric {
String name;
int HP = 50;
final int maxHP = 50;
int MP = 10;
final int maxMP = 10;
}
8-3

package com.example.Exam;
public class Cleric {
String name;
int HP = 50;
final int maxHP = 50;
int MP = 10;
final int maxMP = 10;
void selfAid() {
this.MP = MP - 5;
this.HP = maxHP;
}
}
8-4

package com.example.Exam;
import java.util.Random;
public class Cleric {
String name;
int HP = 50;
int MP = 10;
static final int MAX_HP = 50;
static final int MAX_MP = 10;
void selfAid() {
this.MP = MP - 5;
this.HP = MAX_HP;
}
int pray(int sec) {
int realAmount = 0;
Random random = new Random();
int oldMP = this.MP;
int Amount = (random.nextInt(3) + sec);
this.MP = (this.MP + Amount) <= MAX_MP ? (this.MP + Amount) : MAX_MP;
realAmount = this.MP - oldMP;
return realAmount;
}
}
ν μ€νΈ κ²°κ³Ό
package com.example.Exam;
public class Main {
public static void main(String[] args) {
Cleric cleric = new Cleric();
System.out.println("μ΄κΈ° MP : " + cleric.MP);
cleric.selfAid();
System.out.println("selfAid λ°λ ν MP : " + cleric.MP);
System.out.println("----------------------------------");
System.out.println("pary 3μ΄ λ°λ");
System.out.println("μ€μ ν볡λ : " + cleric.pray(3));
System.out.println("λ°λ ν MP : " + cleric.MP);
}
}



Uploaded by N2T