OPP(κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°) ?
λΆνμ ν΄λΉνλ κ°μ²΄λ₯Ό λ¨Όμ λ§λ€κ³ , κ°μ²΄λ₯Ό μ‘°λ¦½ν΄ νλ‘κ·Έλ¨μ μμ±νλ κΈ°λ²
μμ±ν κ°μ²΄λ₯Ό λͺ¨λΈλ§νκ³ , μ§ν©κ΄κ³μ μλ λΆν κ°μ²΄μ μ¬μ© κ΄κ³μ μλ κ°μ²΄λ₯Ό νλμ© μ€κ³ ν ν 쑰립
κ°μ²΄
β μμ± (=field)
β λμ (=method)
κ°μ²΄λͺ¨λΈλ§(Object Modeling) : νμ€μΈκ³μ κ°μ²΄λ₯Ό μννΈμ¨μ΄ κ°μ²΄λ‘ μ€κ³νλ κ²
κ°μ²΄κ° λ€λ₯Έ κ°μ²΄μ κΈ°λ₯μ μ΄μ©νλ κ² = method νΈμΆ
κ°μ²΄μ λνΈμ°μ°μ(.)μ λΆμ΄κ³ λ©μλλ₯Ό λ©μλ μ΄λ¦μ κΈ°μ
리ν΄κ° = κ°μ²΄.λ©μλ(맀κ°κ°1, 맀κ°κ°2, ....)
κ°μ²΄κ°μ κ΄κ³
λλΆλΆμ κ°μ²΄λ λ€λ₯Έ κ°μ²΄μ κ΄κ³λ₯Ό λ§Ίκ³ μλ€.
β μ§ν©κ΄κ³ : κ°μ²΄λ νλλ λΆν, νλλ μμ±νμ ν΄λΉ
β μμκ΄κ³ : λΆλͺ¨κ°μ²΄λ₯Ό κΈ°λ°μΌλ‘ μμκ°μ²΄λ₯Ό μμ±
β μ¬μ©κ΄κ³ : κ°μ²΄κ°μ μνΈμμ©(κ°μ²΄κ° λ©μλλ₯Ό νΈμΆ)
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νΉμ§
1. μΊ‘μν
: κ°μ²΄μ νλ, λ©μλλ₯Ό νλλ‘ λ¬Άκ³ , μ€μ ꡬν λ΄μ©μ κ°μΆλ κ²
μΈλΆκ°μ²΄λ κ°μ²΄λ΄λΆμ ꡬ쑰λ₯Ό μμ§ λͺ»νλ©°, κ°μ²΄κ° λ ΈμΆν΄μ μ 곡νλ νλμ λ©μλλ§ μ΄μ© κ°λ₯
μΈλΆμ μλͺ»λ μ¬μ©μΌλ‘ κ°μ²΄κ° μμλμ§ μκ² νκΈ° μν΄ μ¬μ© => μ κ·Ό μ νμ μ¬μ©
2. μμ
: μμκ°μ²΄κ° κ°μ§κ³ μλ νλμ λ©μλλ₯Ό νμ κ°μ²΄κ° μ¬μ©ν μ μλλ‘ ν΄μ€
μμκ°μ²΄λ₯Ό μ¬μ¬μ© ν΄μ νμ κ°μ²΄λ₯Ό μ½κ³ 빨리 μ€κ³
λ°λ³΅λ μ½λμ μ€λ³΅μ μ€μ¬μ€
μμκ°μ²΄μ μμ > λͺ¨λ νμ κ°μ²΄λ€μ μμ >> μ μ§λ³΄μ μκ°μ μ΅μν
3. λ€νμ±
: κ°μ νμ μ΄μ§λ§ μ€ν κ²°κ³Όκ° λ€μν κ°μ²΄λ₯Ό μ΄μ©ν μ μλ μ±μ§
κ°μ²΄μ ν΄λμ€
ν΄λμ€(μ€κ³λ) ⊃ νλ&λ©μλ
ν΄λμ€λ‘ λ§λ€μ΄μ§ κ°μ²΄ = μΈμ€ν΄μ€
ν΄λμ€ μ μΈ
μ¬μ©νκ³ μ νλ κ°μ²΄λ₯Ό ꡬμνλ€λ©΄ κ·Έ κ°μ²΄μ λνμ΄λ¦μ νλ κ²°μ νκ³ μ΄κ²μ ν΄λμ€ μ΄λ¦μΌλ‘ νλ€.
| |
μλμ°¨ Car
ν΄λμ€ μ΄λ¦μ μ νλ€λ©΄ "Car.java"λ‘ μμ€ νμΌμ μμ±
μμ€ νμΌμ μμ±νλ€λ©΄ μμ€νμΌμ μ΄κ³ ν΄λμ€λ₯Ό μ μΈν΄μ€λ€.
public class Car{
}
public class λ ν΄λμ€λ₯Ό μ μΈν λ μ¬μ©
μΌλ°μ μΌλ‘λ μμ€ νμΌλΉ νλμ ν΄λμ€λ₯Ό μ μΈ, νμ§λ§ λ κ° μ΄μμ ν΄λμ€ μ μΈλ κ°λ₯ν¨
public class Car{
}
class Person {
}
λκ° μ΄μμ ν΄λμ€κ° μ μΈλ μμ€νμΌμ μ»΄νμΌ νλ©΄ λ°μ΄νΈ μ½λ νμΌμ ν΄λμ€λ₯Ό μ μΈν κ°μλ§νΌ μκΉ
μ μ½λλ₯Ό μ»΄νμΌνλ©΄ Car.class, Person.class λ κ°μ§κ° μμ±λ¨
νμΌ μ΄λ¦κ³Ό λμΌν μ΄λ¦μ ν΄λμ€μλ§ public μ κ·Ό μ νμ μ¬μ© κ°λ₯
κ°μ²΄ μμ±κ³Ό ν΄λμ€ λ³μ
μ»΄νμΌμ νλ©΄ μ€κ³λ λ§λ€μ΄μ§ μν.
ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό μμ±νλ €λ©΄ new μ°μ°μλ₯Ό μ¬μ©
new ν΄λμ€();
new λ€μλ ν΄λμ€(); νμμ μμ±μκ° μ΄
new μ°μ°μλ‘ μμ±λ κ°μ²΄λ ν μμμ μμ±λκ³ , κ°μ²΄μ μ£Όμλ₯Ό 리ν΄ν¨
ν΄λμ€μ ꡬμ±λ©€λ²
β νλ : κ°μ²΄μ λ°μ΄ν°κ° μ μ₯λλ κ³³ int fieldName;
μμ±μμ λ©μλ μ 체μμ μ¬μ©λλ©° κ°μ²΄κ° μλ©Έλμ§ μλ ν κ°μ²΄μ ν¨κ» μ’ λ£λ¨
!= λ³μ(μμ±μμ λ©μλ λ΄μμλ§ μ¬μ©λκ³ μμ±μμ λ©μλκ° μ€ν μ’ λ£λλ©΄ μλ μλ©Έ)
public class Car{
//νλ
String company = "kia";
String color = "black";
int MaxSpeed = 350;
}
β μμ±μ : κ°μ²΄ μμ± μ μ΄κΈ°ν μν λ΄λΉ ClassName() {.... }
new μ°μ°μλ‘ νΈμΆλλ { }λΈλ‘
* μμ±μ μ€λ²λ‘λ©(OverLoading)
: λ§€κ° λ³μλ₯Ό λ¬λ¦¬νλ κ°μ μ΄λ¦μ μμ±μλ₯Ό μ¬λ¬κ° μ μΈ νλ κ²
* μ£Όμν μ μ λ§€κ° λ³μμ νμ , κ°μ, μ μΈλ μμκ° λκ°μ κ²½μ°,
맀κ°λ³μ μ΄λ¦λ§ λ°κΎΈλ κ²μ μμ±μ μ€λ²λ‘λ©μ΄ μλ
* this()
μμ±μ μ€λ²λ‘λ©μ΄ λ§μμ§ κ²½μ° μμ±μ κ°μ μ€λ³΅λ μ½λκ° λ°μν μ μλ€.
μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λμλ this() μ½λλ₯Ό μ¬μ©ν¨
this() λ μμ μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνλ μ½λλ‘ λ°λμ μμ±μμ 첫 μ€μμλ§ νμ©λλ€.
'STUDY > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JAVA - μ μ λ©€λ²μ static & μ±κΈν€(singleton) (0) | 2022.04.18 |
---|---|
JAVA - λ©μλ (0) | 2022.04.18 |
JAVA - μ΄κ±°νμ (0) | 2022.04.13 |
JAVA - ν₯μλ forλ¬Έ (0) | 2022.04.13 |
JAVA - λ€μ°¨μ λ°°μ΄ (0) | 2022.04.13 |