
1. Getter μ Setter
π κ°μ²΄μ νλ(λ°μ΄ν°)λ₯Ό μΈλΆμμ λ§μλλ‘ μ½κ³ λ³κ²½ν κ²½μ° κ°μ²΄μ 무결μ±μ΄ κΉ¨μ§ μ μλ€.
ex. μλμ°¨μ μλ ₯μ μμκ° λ μ μλλ°, μΈλΆμμ μμλ‘ λ³κ²½νλ©΄ κ°μ²΄μ 무결μ±μ΄ κΉ¨μ§
π μ΄λ¬ν λ¬Έμ μ λλ¬Έμ OOPμμλ μ§μ μ μΈ μΈλΆμμμ νλ μ κ·Όμ λ§κ³ λμ λ©μλλ₯Ό ν΅ν΄ νλμ μ κ·Όνλ κ²μ μ νΈν¨
β‘οΈ λ©μλλ λ°μ΄ν°λ₯Ό κ²μ¦ν΄μ μ ν¨ν κ°λ§ νλμ μ μ₯ν μ μκΈ° λλ¬Έ
β‘οΈ μ΄λ¬ν μν μ νλ λ©μλκ° Setter
π νλκ°μ΄ κ°μ²΄ μΈλΆμμ μ¬μ©νκΈ°μ λΆμ μ ν κ²½μ°, λ©μλλ‘ μ μ ν κ°μΌλ‘ λ³νν΄μ 리ν΄ν μ μλ€.
β‘οΈ μ΄λ¬ν μν μ νλ λ©μλκ° Getter
private νμ
fieldName;
// Getter
public νμ
getFieldName() {
return fieldName;
}
// Setter
public void setFieldName(νμ
fieldName) {
this.fieldName = fieldName;
}
- field νμ μ΄ booleanμΌ κ²½μ°μλ Getterλ getμΌλ‘ μμνμ§ μκ³ isλ‘ μμνλ κ²μ΄ κ΄λ‘
public class Car {
// νλ μ μΈ
private int speed;
private boolean stop;
// speed νλμ Getter/Setter μ μΈ
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
if(speed < 0) {
this.speed = 0;
return;
} else {
this.speed = speed;
}
}
// stop νλμ Getter/Setter μ μΈ
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
if(stop == true) this.speed = 0;
}
}
public class CarExample {
public static void main(String[] args) {
//κ°μ²΄ μμ±
Car myCar = new Car();
//μλͺ»λ μλ λ³κ²½
myCar.setSpeed(-50);
System.out.println("νμ¬ μλ: " + myCar.getSpeed());
//μ¬λ°λ₯Έ μλ λ³κ²½
myCar.setSpeed(60);
System.out.println("νμ¬ μλ: " + myCar.getSpeed());
//λ©μΆ€
if(!myCar.isStop()) {
myCar.setStop(true);
}
System.out.println("νμ¬ μλ: " + myCar.getSpeed());
}
}
2. μ±κΈν€ ν¨ν΄ Singleton
π μ ν리μΌμ΄μ μ 체μμ λ¨ ν κ°μ κ°μ²΄λ§ μμ±ν΄μ μ¬μ©νκ³ μΆλ€λ©΄ μ±κΈν€ ν¨ν΄μ μ μ©
π ν΅μ¬μ μμ±μλ₯Ό private μ κ·Ό μ νν΄μ μΈλΆμμ new μ°μ°μλ‘ μμ±μλ₯Ό νΈμΆν μ μλλ‘ λ§λ κ²
π λμ μ μ λ©μλλ₯Ό ν΅ν΄ κ°μ μ μΌλ‘ κ°μ²΄λ₯Ό μ»μ μ μλ€.
public class ν΄λμ€ {
// private μ κ·Ό κΆνμ κ°λ μ μ νλ μ μΈκ³Ό μ΄κΈ°ν
private static ν΄λμ€ singleton = new ν΄λμ€();
// private μ κ·Ό κΆνμ κ°λ μμ±μ μ μΈ
private ν΄λμ€() {}
// public μ κ·Ό κΆνμ κ°λ μ μ λ©μλ μ μΈ
public static ν΄λμ€ getInstance() {
return singleton;
}
}
- μΈλΆμμ κ°μ²΄λ₯Ό μ»λ μ μΌν λ°©λ²μ getInstance() λ©μλλ₯Ό νΈμΆνλ κ².
- getInstance() λ©μλκ° λ¦¬ν΄νλ κ°μ²΄λ μ μ νλκ° μ°Έμ‘°νλ μ±κΈν€ κ°μ²΄μ΄λ€.
- λ°λΌμ μλ μ½λμμ λ³μ1κ³Ό λ³μ2κ° μ°Έμ‘°νλ κ°μ²΄λ λμΌν κ°μ²΄κ° λλ€.
ν΄λμ€ λ³μ1 = ν΄λμ€.getInstance();
ν΄λμ€ λ³μ2 = ν΄λμ€.getInstance();

public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {}
static Singleton getInstance() {
return singleton;
}
}
public class SingletonExample {
public static void main(String[] args) {
/*
Singleton obj1 = new Singleton(); //μ»΄νμΌ μλ¬
Singleton obj2 = new Singleton(); //μ»΄νμΌ μλ¬
*/
//μ μ λ©μλλ₯Ό νΈμΆν΄μ μ±κΈν€ κ°μ²΄ μ»μ
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
//λμΌν κ°μ²΄λ₯Ό μ°Έμ‘°νλμ§ νμΈ
if(obj1 == obj2) {
System.out.println("κ°μ Singleton κ°μ²΄μ
λλ€.");
} else {
System.out.println("λ€λ₯Έ Singleton κ°μ²΄μ
λλ€.");
}
}
}
* λ΄μ© μ°Έκ³ - μ± 'μ΄κ²μ΄ μλ°λ€'
'Programming Language > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μ€λ²λΌμ΄λ© Overriding (0) | 2024.08.11 |
---|---|
[Java] μμ Inheritance (0) | 2024.08.11 |
[Java] final νλμ μμ Β· μ κ·Ό μ νμ (0) | 2024.08.11 |
[Java] μΈμ€ν΄μ€ λ©€λ²μ μ μ λ©€λ² (0) | 2024.08.10 |
[Java] μμ±μ Constructor (0) | 2024.08.10 |