π ν΄λμ€ ?
- κ°μ²΄λ₯Ό μ μν΄ λμ κ²
- κ°μ²΄μ μ€κ³λ λλ ν
- κ°μ²΄λ₯Ό μμ±νλλ° μ¬μ©
π ν΄λμ€μ κ°μ²΄, μΈμ€ν΄μ€
μ²μμ ν΄λμ€, μΈμ€ν΄μ€, κ°μ²΄μ κ°μ λ¨μ΄λ₯Ό μ νκ³ μ΄λ €μμ΄ μμλ€. μλ₯Ό λ€μ΄μ μ€λͺ νλ©΄ μ½κ² μ΄ν΄κ° λ κ²μ΄λ€.
class Product{
String model;
String name;
String category;
boolean power;
//κΈ°λ₯(λ©μλ)
void turnOn(){
this.power = 1;
return this.power;
}
boolean turnOff(){
this.power = 0;
return this.power;
}
}
μμ κ°μ΄ Product λΌλ ν΄λμ€κ° μλ€κ³ νμ. μνμ΄λΌλ ν΄λμ€κ° μ‘΄μ¬νλλ° κ³Όμ° μ΄λ€ μνμΌκΉ?
νΈλν°, TV, λ§μ°μ€, ν€λ³΄λ, μ»΄ν¨ν° λ±λ± μ΄ μΈμμλ μνμ΄ λ§€μ° λ§μ΄ μ‘΄μ¬νλ€.
μ΄λ¬ν κ°μ²΄(νΈλν°, TV λ±)λ€μ΄ μνμ΄λΌλ ν΄λμ€λ₯Ό μμλ°μ μμ ν΄λμ€μμλ μ μμ ν€κ³ λλ 곡ν΅μ μΈ κΈ°λ₯μ΄ μλ€.
public class SmartPhone extends Product{
String model;
String company;
// κΈ°λ₯(λ©μλ)
void call(){}
void message(){}
}
μμ μ½λλ μν ν΄λμ€λ₯Ό μμλ°μ μ€λ§νΈν° ν΄λμ€λ μνμ μλ 곡ν΅μ μΈ νΉμ§λ€μ μ¬μ©ν μ μλ€. νμ§λ§ νΈλν°μ΄λΌλ ν΄λμ€λ μ£ΌμΈμ΄ μ§κΈ μλ μνμ΄λ€. λμ νΈλν°, λ΄ μΉκ΅¬μ νΈλν° .. κ³Ό κ°μ΄ λκ΅°κ°μ νΈλν°μ΄ λλ €λ©΄ κ°μ²΄λ₯Ό μμ±νκ³ μΈμ€ν΄μ€λ₯Ό λ§λ€μ΄μΌ νλ€.
π± κ°μ²΄λ ?
- μ€μ λ‘ μ‘΄μ¬νλ κ². μ¬λ¬Ό λλ κ°λ
- κ°μ²΄μ μ©λλ κ°μ²΄κ° κ°μ§κ³ μλ κΈ°λ₯κ³Ό μμ±μ λ°λΌ λ€λ¦
- ν΄λμ€μ μ μλ λ΄μ©λλ‘ λ©λͺ¨λ¦¬μ μμ±λ κ²
π κ°μ²΄λ₯Ό λ§λλ λ°©λ²
μΈμ€ν΄μ€ν
- ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό λ§λλ κ³Όμ
- μ΄λ€ ν΄λμ€λ‘λΆν° λ§λ€μ΄μ§ κ°μ²΄λ₯Ό κ·Έ ν΄λμ€μ μΈμ€ν΄μ€λΌκ³ ν¨
κ°μ²΄ : λͺ¨λ μΈμ€ν΄μ€λ₯Ό λννλ ν¬κ΄μ μλ―Έ
μΈμ€ν΄μ€ : μ΄λ€ ν΄λμ€λ‘λΆν° λ§λ€μ΄μ§ κ²μΈμ§λ₯Ό κ°μ‘°νλ λ³΄λ€ κ΅¬μ²΄μ μΈ μλ―Έ
μ¦, μ€λ§νΈν°μ΄λΌλ ν΄λμ€μμ κ°μ²΄λ₯Ό λ§λ€μ΄ μΈμ€ν΄μ€λ₯Ό λ§λ€λ©΄ λμ μ€λ§νΈν°μ΄ μκΈ°λ κ²κ³Ό κ°λ€.
SmartPhone myPhone = new SmartPhone();
μμ κ°μ μ½λλ₯Ό μμ±νλ©΄ λλ§μ μ€λ§νΈν° μΈμ€ν΄μ€κ° μκΈ΄ κ²μ΄λ€. μ΄ μ€λ§νΈν°μ κΈ°λ₯μ μ μ / μ ν / λ©μΈμ§ λ±μ΄ μλ€.
π κ°μ²΄μ κ΅¬μ± μμ
- μμ±(Property)
- λ©€λ²λ³μ, νΉμ±, νλ, μν
- κΈ°λ₯
- λ©μλ, νμ
myPhone.name = "Apple"; // μμ± - λ©€λ²λ³μ
myPhone.turnOn(); // λ©μλ
𧧠new μ°μ°μ
μΈμ€ν΄μ€(κ°μ²΄)λ₯Ό μμ±ν΄μ£Όλ μν
λ©λͺ¨λ¦¬(Heap μμ)μ λ°μ΄ν°λ₯Ό μ μ₯ν 곡κ°μ ν λΉλ°κ³ κ·Έ 곡κ°μ μ°Έμ‘°κ°μ κ°μ²΄μκ² λ°ννμ¬ μ£Όκ³ μ΄μ΄μ μμ±μλ₯Ό νΈμΆνλ€.
μ¬κΈ°μ μ£Όμν μ μ΄ μλλ° μΌλ°μ μΈ int ν λΉκ΅μ κ°μ²΄μ λΉκ΅λ λ€λ₯΄λ€.
Tv myTv = new Tv("Samsung");
Tv newTv = new Tv("Samsung");
myTv == newTv // false
μμ μ½λκ° μλ€κ³ νμ λ myTvμ newTv λ κ°μ 보μΈλ€. νμ§λ§ κ°μ²΄λ μμ±μ Heap λ©λͺ¨λ¦¬ μμμ ν λΉμ΄ λλ€.
μ΄λ μλ‘ λ€λ₯Έ μ£Όμκ°μ κ°μ§κ³ μλ€λ μλ―Έμ΄λ€. myTvλ λ΄λΆμ μΌλ‘ 보면 Heapμμμ μ£Όμκ°μ κ°μ§κ³ μμ΄μ myTvμ newTvκ° κ°μ§κ³ μλ μ£Όμ κ°μ΄ λ€λ₯΄λ€. λ°λΌμ == μ°μ°μκ° μλ equals() λ₯Ό ν΅ν΄ λΉκ΅λ₯Ό ν΄μΌνλ€.
𧧠μμ±μ
μΈμ€ν΄μ€κ° μμ±λ λ νΈμΆλλ μΈμ€ν΄μ€ μ΄κΈ°ν λ©μλ
μμ±μμ 쑰건
- μμ±μμ μ΄λ¦μ ν΄λμ€μ μ΄λ¦κ³Ό κ°μμΌν¨
- μμ±μλ 리ν΄κ°μ΄ μμ
κΈ°λ³Έ μμ±μλ μμ±μκ° μ μλμ΄ μμ§ μμ κ²½μ°, μ»΄νμΌλ¬κ° κΈ°λ³Έμμ±μλ₯Ό μΆκ°ν΄μ μ»΄νμΌνλ€.
λμ€μλ Lombokμ΄λΌλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν΄ μ½κ² μμ±μλ₯Ό λ§λ€ μ μλ€.
π§§this
thisλ κ°μ²΄, μκΈ° μμ μ λνλΈλ€.
thisλ₯Ό μ¬μ©νλ κ²½μ°
ν΄λμ€μ μμ±κ³Ό μμ±μ/λ©μλμ 맀κ°λ³μμ μ΄λ¦μ΄ κ°μ κ²½μ° μ΄λ€ λ³μλ₯Ό κ°λ₯΄ν€λμ§ μλ €μ£ΌκΈ° μν΄ μ¬μ©νλ€.
public Tv(String name, String model){
this.name = name;
this.model = model;
}
'π» BackEnd > π¨ Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π¨ [Java] [μμΈ μ²λ¦¬]Checked Exception VS Unchecked Exception (1) | 2024.01.21 |
---|---|
π¨ [Java] [Project] κ°λ¨ν μΌνλͺ° νλ‘μ νΈ λ§λ€κΈ° (0) | 2023.06.20 |
π¨ [Java] Exception(μμΈ μ²λ¦¬) (0) | 2023.04.19 |
π¨ [Java] λΌμ΄λΈλ¬λ¦¬ / λͺ¨λ (0) | 2023.04.18 |
π¨ [Java] λ¬Όν μ¬κ³ κ΄λ¦¬ νλ‘κ·Έλ¨ λ§λ€κΈ° (0) | 2023.04.09 |