π€ Javaμ μμ±μλ?
μλ°μ μμ±μ(constructor)λ κ°μ²΄λ₯Ό μμ±ν λ νΈμΆλλ νΉλ³ν λ©μλλ‘,
κ°μ²΄μ μ΄κΈ° μνλ₯Ό μ€μ νλ λ° μ¬μ©λ©λλ€.
μμ±μλ ν΄λμ€ μ΄λ¦κ³Ό λμΌν μ΄λ¦μ κ°μ§λ©° λ°ν νμ μ΄ μμ΅λλ€
μμ±μλ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ λ§€μ° μ€μν μν μ ν©λλ€.
π©·μμ±μμ νΉμ§
1. ν΄λμ€ μ΄λ¦κ³Ό λμΌ
- μμ±μλ ν΄λμ€ μ΄λ¦κ³Ό λμΌν μ΄λ¦μ κ°μ§λλ€.
- λ°ν νμ μ΄ μμΌλ©°, voidλ μ¬μ©νμ§ μμ΅λλ€.
- CalculatorλΌλ ν΄λμ€μ μμ±μλ public Calculator() { } ννλ‘ μ μν©λλ€.
2. κ°μ²΄ μ΄κΈ°ν
- μμ±μλ κ°μ²΄μ νλλ₯Ό μ΄κΈ°ννκ±°λ μ΄κΈ° μ€μ μμ μ μνν©λλ€.
- κ°μ²΄κ° μμ±λ λλ§λ€ μ€νλλ―λ‘, κ°μ²΄κ° νμν μ΄κΈ° μνλ₯Ό μ€μ νλ λ° μ ν©ν©λλ€.
- κ°μ²΄λ₯Ό μμ±νλ μ¬μ©μμ νΈμμ λ°λΌ μ΄κΈ°ν λ°©λ²μ μ¬λ¬ κ°μ§κ° μ‘΄μ¬ν μ μμ΅λλ€.
3. μ€λ²λ‘λ© κ°λ₯
- μμ±μλ μ€λ²λ‘λ©λ μ μμ΅λλ€.
- μ¦, 맀κ°λ³μ λͺ©λ‘μ΄ λ€λ₯Έ μ¬λ¬ μμ±μλ₯Ό μ μν μ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ λ€μν λ°©λ²μΌλ‘ κ°μ²΄λ₯Ό μ΄κΈ°νν μ μμ΅λλ€.
4 κΈ°λ³Έ μμ±μ ( =default constructor )
- ν΄λμ€μ λͺ μμ μΌλ‘ μμ±μλ₯Ό μ μνμ§ μμΌλ©΄,
- μ»΄νμΌλ¬κ° μλμΌλ‘ 맀κ°λ³μκ° μλ κΈ°λ³Έ μμ±μλ₯Ό μ 곡ν©λλ€.
- λͺ μμ μΌλ‘ μμ±μλ₯Ό νλλΌλ μ μνλ©΄, μ»΄νμΌλ¬λ κΈ°λ³Έ μμ±μλ₯Ό μ 곡νμ§ μμ΅λλ€.
5. thisλ₯Ό μ¬μ©ν μμ±μ νΈμΆ
- μμ±μ λ΄λΆμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λ this ν€μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ μ€λ³΅ μ½λλ₯Ό μ€μ΄κ³ μ΄κΈ°ν λ‘μ§μ μ¬μ¬μ©ν μ μμ΅λλ€.
μ€λ²λ‘λ©κ³Ό thisλ μΆν ν¬μ€ν
μμ λ€λ£¨κ² μ΅λλ€.
π§‘μμ±μμ μ₯μ
1. κ°μ²΄ μ΄κΈ°νμ μΌκ΄μ±:
μμ±μλ₯Ό μ¬μ©νλ©΄ κ°μ²΄κ° μμ±λ λ νμν μ΄κΈ°ν μμ μ μΌκ΄λκ² μνν μ μμ΅λλ€.
μ΄λ₯Ό ν΅ν΄ κ°μ²΄μ μνλ₯Ό μΌκ΄μ± μκ² μ μ§ν μ μμ΅λλ€.
2. μ½λ μ¬μ¬μ©μ±:
μμ±μ μ€λ²λ‘λ©κ³Ό this ν€μλλ₯Ό μ¬μ©ν μμ±μ νΈμΆμ ν΅ν΄ μ΄κΈ°ν λ‘μ§μ μ¬μ¬μ©ν μ μμ΅λλ€.
μ΄λ μ½λ μ€λ³΅μ μ€μ΄κ³ μ μ§λ³΄μλ₯Ό μ©μ΄νκ² ν©λλ€.
3. κ°μ²΄ μμ±μ νΈλ¦¬ν¨:
μμ±μλ κ°μ²΄λ₯Ό μμ±νλ©΄μ λμμ νμν μ΄κΈ°ν μμ μ μννλ―λ‘,
κ°μ²΄ μμ±μ λ κ°νΈνκ³ μ§κ΄μ μΌλ‘ λ§λ€ μ μμ΅λλ€.
νΉμ§λ³ μμ λ‘ μ΄ν΄λ³΄κ² μ΅λλ€.
μμ 1 ) ν΄λμ€ μ΄λ¦κ³Ό λμΌ
public class Example {
private int value;
// μμ±μ - ν΄λμ€ μ΄λ¦κ³Ό λμΌνλ©° λ°ν νμ
μ΄ μμ
public Example(int value) {
this.value = value;
}
public void displayValue() {
System.out.println("Value: " + value);
}
public static void main(String[] args) {
Example ex = new Example(10); // μμ±μ νΈμΆ
ex.displayValue(); // Value: 10 μΆλ ₯
}
}
μμ 2 ) κ°μ²΄ μ΄κΈ°ν
public class Person {
private String name;
private int age;
// μμ±μ - κ°μ²΄ μ΄κΈ°ν
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void displayInfo() {
System.out.println("Name: " + name + ", Age: " + age);
}
public static void main(String[] args) {
Person person = new Person("pipi", 5); // μμ±μ νΈμΆ
person.displayInfo(); // Name: pipi, Age: 5 μΆλ ₯
}
}
μμ 3 ) μ€λ²λ‘λ© κ°λ₯
public class Rectangle {
private int width;
private int height;
// κΈ°λ³Έ μμ±μ
public Rectangle() {
this.width = 0;
this.height = 0;
}
// 맀κ°λ³μκ° μλ μμ±μ
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
public void displayDimensions() {
System.out.println("Width: " + width + ", Height: " + height);
}
public static void main(String[] args) {
Rectangle rect1 = new Rectangle(); // κΈ°λ³Έ μμ±μ νΈμΆ
rect1.displayDimensions(); // Width: 0, Height: 0 μΆλ ₯
Rectangle rect2 = new Rectangle(10, 20); // 맀κ°λ³μκ° μλ μμ±μ νΈμΆ
rect2.displayDimensions(); // Width: 10, Height: 20 μΆλ ₯
}
}
μμ 4 ) κΈ°λ³Έ μμ±μ
public class Animal {
private String type;
// κΈ°λ³Έ μμ±μκ° μλμΌλ‘ μ 곡λ¨
public Animal() {
this.type = "Unknown";
}
public void displayType() {
System.out.println("Type: " + type);
}
public static void main(String[] args) {
Animal animal = new Animal(); // κΈ°λ³Έ μμ±μ νΈμΆ
animal.displayType(); // Type: Unknown μΆλ ₯
}
}
μμ 5 ) thisλ₯Ό μ¬μ©ν μμ±μ νΈμΆ
public class Car {
private String model;
// 맀κ°λ³μκ° μλ μμ±μ
public Car(String model) {
this.model = model;
}
// κΈ°λ³Έ μμ±μλ₯Ό λͺ
μμ μΌλ‘ μ μ
public Car() {
this.model = "Unknown";
}
public void displayModel() {
System.out.println("Model: " + model);
}
public static void main(String[] args) {
Car car1 = new Car("Tesla"); // 맀κ°λ³μκ° μλ μμ±μ νΈμΆ
car1.displayModel(); // Model: Tesla μΆλ ₯
Car car2 = new Car(); // κΈ°λ³Έ μμ±μ νΈμΆ
car2.displayModel(); // Model: Unknown μΆλ ₯
}
}
μμ±μλ κ°μ²΄μ μ΄κΈ° μνλ₯Ό μ€μ νλλ° λ§€μ° μ€μν μν μ ν©λλ€.
μ΄λ₯Ό ν΅ν΄ μ½λμ μΌκ΄μ±κ³Ό μ¬μ¬μ©μ±μ λμΌ μ μμ΅λλ€.
μ§λ¬Έμ μΈμ λ μ§ λκΈμ λ¨κ²¨μ£ΌμΈμ.
π©΅π°π©΅
'βJava' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java μ΄ν΄νκΈ°] 18. Javaμ μ€λ²λ‘λ© (2) | 2024.05.27 |
---|---|
[Java μ΄ν΄νκΈ°] 17. Javaμ this (1) | 2024.05.27 |
[Java μ΄ν΄νκΈ°] 15. Javaλ‘ κ΅¬κ΅¬λ¨ λ§λ€κΈ° (2) (1) | 2024.05.24 |
[Java μ΄ν΄νκΈ°] 14. Javaλ‘ κ΅¬κ΅¬λ¨ λ§λ€κΈ° (1) (1) | 2024.05.24 |
[Java μ΄ν΄νκΈ°] 13. Javaμ λ°°μ΄ (2) (1) | 2024.05.24 |