π‘ μμ±μ(Constructor)
μΈμ€ν΄μ€κ° μμ±λ λ νΈμΆλλ μΈμ€ν΄μ€ μ΄κΈ°ν λ©μλ
(μΈμ€ν΄μ€ μ΄κΈ°ν = μΈμ€ν΄μ€ λ³μ μ΄κΈ°ν)
πΈ μ μΈ
μμ±μλ₯Ό μ μΈν λλ μλμ 쑰건μ μ§μΌμΌ νλ€.
- μμ±μμ μ΄λ¦μ ν΄λμ€μ μ΄λ¦κ³Ό κ°μμΌ νλ€.
- μμ±μλ λ°νκ°μ΄ μλ€.
μμ±μλ λ©μλμ μΌμ’ μ΄λ―λ‘ ν΄λμ€ λ΄μ μ μΈν΄μΌ νλ©°, ꡬ쑰λ μΌλ°μ μΈ λ©μλμ μ μ¬νλ€. λ€λ§ νμ λ°νκ°μ΄ μκΈ° λλ¬Έμ μ μΈλΆμμ λ°ννμ (void)μ μλ΅ν μ μλ€.
π€ μμ±μλ μ€λ²λ‘λ©ν μ μμκΉ?
λΉμ°ν μμ±μλ λ©μλμ΄κΈ° λλ¬Έμ μ€λ²λ‘λ©ν μ μλ€. 맀κ°λ³μκ° μλ μμ±μ, 맀κ°λ³μκ° μλ μμ±μ λ± νμμ λ°λΌ λ©μλ μκ·Έλμ²λ₯Ό λ¬λ¦¬νμ¬ ν ν΄λμ€μ μ¬λ¬ μμ±μλ₯Ό μ μν μ μλ€.
πΈ μμ±μκ° μΈμ€ν΄μ€λ₯Ό 'μμ±'νλκ°?
μμ±μλ μ΄λ¦κ³Ό λ¬λ¦¬ μΈμ€ν΄μ€λ₯Ό 'μμ±'νλ κ²μ΄ μλλΌ 'μ΄κΈ°ν'νλ λ©μλμΌ λΏμ΄λ€. μΈμ€ν΄μ€μ μμ±μ μ°μ°μ newκ° μννλ€.
μΉμ©μ°¨ κ°μ²΄λ₯Ό μμ±νλ Car
ν΄λμ€λ₯Ό μλ‘ λ€μ΄λ³΄μ.
class Car{
float mpg; // μ°λΉ
String color; // μμ
static int wheel = 4; // λ°ν΄ μ
Car(float m, String c){
mpg = m;
color = c;
}
}
λ€μ μ½λλ‘ Car
ν΄λμ€μ λν μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€.
Car myCar = new Car(10.44, "black");
μΈμ€ν΄μ€ μμ±μ λ€μκ³Ό κ°μ λ¨κ³λ‘ μνλλ€.
1. μ°μ°μ new
μ μν΄ λ©λͺ¨λ¦¬(heap)μ Car ν΄λμ€μ μΈμ€ν΄μ€κ° μμ±λ¨
2. μμ±μ Car(float gm, String c)
κ° νΈμΆλμ΄ μνλ¨
3. 1μμ μμ±λ μΈμ€ν΄μ€μ μ£Όμκ° λ°νλμ΄ μ°Έμ‘°λ³μ myCar
μ μ μ₯λ¨
맀κ°λ³μκ° μλ μμ±μλ₯Ό μ΄μ©νλ©΄ μΈμ€ν΄μ€ μμ±κ³Ό λμμ μνλ κ°μΌλ‘ μΈμ€ν΄μ€ λ³μλ₯Ό μ΄κΈ°νν μ μλ€. μ΄λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ΄νμ λ°λ‘ κ°μ λ³κ²½ν΄μ£Όλ κ²λ³΄λ€ μ½λλ₯Ό κ°κ²°νκ³ μ§κ΄μ μΌλ‘ λ§λ€ μ μλ€λ μ μμ μ’λ€.
μμ±μμ 맀κ°λ³μ μ΄λ¦μ΄ μΈμ€ν΄μ€ λ³μμ μ΄λ¦κ³Ό κ°μ κ²½μ° this
λ₯Ό μ΄μ©νμ¬ μλμ κ°μ΄ μ μνλ©΄ λλ€.
class Car{
float mpg;
String color;
static int wheel = 4;
Car(float mpg, String color){
this.mpg = mpg;
this.color = color;
}
}
this
λ μΈμ€ν΄μ€ μμ μ κ°λ¦¬ν€λ μ°Έμ‘°λ³μμ΄λ€. λ§μ½ this
λ₯Ό μ¬μ©νμ§ μμΌλ©΄ μμ±μλ μμ μ μΈμ€ν΄μ€ λ³μμ μ κ·Όν μ μμ΄ μ λ³μ λͺ¨λ μ§μλ³μλ‘ μΈμλλ€.
π‘ κΈ°λ³Έ μμ±μ(default constructor)
λͺ¨λ ν΄λμ€μλ λ°λμ 1κ° μ΄μμ μμ±μλ₯Ό μ μν΄μΌ νλ€.
κ·Έλ°λ° μ€μ λ‘λ ν΄λμ€μ μμ±μλ₯Ό μ ν μ μνμ§ μκ³ λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€. μ΄λ μμ±μκ° νλλ μ μλμ§ μμ ν΄λμ€μ λν΄μλ μ»΄νμΌλ¬κ° μλμΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό μΆκ°νμ¬ μ»΄νμΌνκΈ° λλ¬Έμ΄λ€.
κΈ°λ³Έ μμ±μλ 맀κ°λ³μλ νΉλ³ν λ΄μ©μ κ°μ§κ³ μμ§ μλ€.
// κΈ°λ³Έ μμ±μμ νν
ν΄λμ€μ΄λ¦() {}
λ€λ§ μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μλ₯Ό μΆκ°νλ κ²½μ°λ μμ±μκ° νλλ μ μλμ§ μμ κ²½μ°λΏμ΄λ€.
μμμ μμλ‘ λ€μλ Car
ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ μΈμ μμ΄ μμ±νκ³ μΆλ€κ³ Car myCar = new Car();
μ μννκ² λλ©΄ 'μμ±μλ₯Ό μ°Ύμ μ μλ€'λΌλ μ»΄νμΌ μλ¬κ° λ°μνλ€. λ°λΌμ μ΄ κ²½μ°μλ μλμ κ°μ΄ μμ±μλ₯Ό μ€λ²λ‘λ© ν΄μΌ νλ€.
class Car{
float mpg;
String color;
static int wheel = 4;
Car() {}; // 맀κ°λ³μκ° μλ μμ±μ
Car(float m, String c){
mpg = m;
color = c;
}
}
π‘ μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνκΈ°
λ€μμ 쑰건μ μ§μΌ μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν μ μλ€.
• μμ±μμ μ΄λ¦μΌλ‘ ν΄λμ€μ΄λ¦ λμ this
λ₯Ό μ¬μ©ν¨
• ν μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λλ λ°λμ 첫 μ€μμ νΈμΆν΄μΌ ν¨
μ΄μ κ°μ 쑰건μ μ§μΌμΌ νλ μ΄μ λ μμ±μ λ΄μμ μ΄κΈ°ν λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνλ©΄ νΈμΆλ λ€λ₯Έ μμ±μ λ΄μμλ λ©€λ²λ³μμ κ°μ μ΄κΈ°ννμ¬ μ²μ μμ±μμ μμ
μ΄ λ¬΄μλ―Έν΄μ§ μ μκΈ° λλ¬Έμ΄λ€.
πΈ μμ
μμ±μ κ° νΈμΆμ μ½λλ₯Ό κ°κ²°νκ² λ§λλ λ° μ΄μ©ν μ μλ€.
μλμ μ½λλ 맀κ°λ³μκ° μλ μμ±μλ₯Ό μ΄μ©νμ λ κΈ°λ³Έμ μΌλ‘ μ°λΉλ 10.44, μμμ blackμΌλ‘ μ΄κΈ°ννλ€λ λ»μ΄λ€.
Car() {
mpg = 10.44;
color = "black";
}
this
λ₯Ό μ΄μ©ν΄μ μμ±μ μμμ μμ±μλ₯Ό νΈμΆνλ©΄ λ€μκ³Ό κ°μ΄ λ§λ€ μ μλ€.
Car() {
this(10.44, "black");
}
π‘ μΈμ€ν΄μ€ 볡μ¬
μ΄λ―Έ μμ±λ μΈμ€ν΄μ€λ₯Ό μμ±μμ μΈμλ‘ λ겨주면 κ·Έ μΈμ€ν΄μ€μ μμ±μ΄ κ°μ μΈμ€ν΄μ€λ₯Ό νλ λ λ§λ€ μ μλ€.
// μΈμ€ν΄μ€λ₯Ό 볡μ¬νλ μμ±μ μμ
Car(Car c) {
mpg = c.mpg;
color = c.color;
}
μ΄ λν μμμ μΈκΈν κ²μ²λΌ this
λ₯Ό μ΄μ©ν΄μ λ κ°κ²°νκ² λ§λ€ μ μλ€.
Car(Car c) {
this(c.mpg, c.color);
}
μ΄λ λ― μμ±μλ₯Ό μ νμ©νλ©΄ μ½λμ μ¬μ¬μ©μ±μ΄ λμμ§λ€λ μ μμ κ°μ²΄μ§ν₯μ μΈ μ½λλ₯Ό μμ±νλ λ° μ 리νλ€.
π μΈμ€ν΄μ€ μμ± μ κ²°μ μ¬ν
- ν΄λμ€: μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν κ²μΈκ°?
- μμ±μ: μ νν ν΄λμ€μ μ΄λ€ μμ±μλ‘ μΈμ€ν΄μ€λ₯Ό μμ±ν κ²μΈκ°?
π Reference
• Javaμ μ μ 3ν, λ¨κΆμ±, λμ°μΆν.
'Study > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μ€λ²λ‘λ©(overloading)κ³Ό κ°λ³μΈμ(varargs) (1) | 2023.05.14 |
---|---|
[Java] λ³μ(variable)μ λ©μλ(method) (0) | 2023.05.13 |
[Java] ν΄λμ€λ? (0) | 2023.05.13 |