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 ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.");
		}
	}
}

 

 

 

*  ๋‚ด์šฉ ์ฐธ๊ณ  - ์ฑ… '์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค'

+ Recent posts