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 |