๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+12] class ํด๋ž˜์Šค

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 10. 5.

 

 

๊ตญ๋น„์ง€์› D+12

-  class ํด๋ž˜์Šค -

 


 

ํด๋ž˜์Šค

์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” main()ํ•จ์ˆ˜์•ˆ์— ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์™”๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์˜ค๋กœ์ง€ ์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜๋งŒ์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๊ฒƒ์ด ์ข‹์€ ์ฝ”๋“œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

 

[D+10] ์ฝ”๋”ฉ๋ฐ์ด

๊ตญ๋น„์ง€์› D+10 - ์ฝ”๋”ฉ๋ฐ์ด - ์ฝ”๋”ฉ๋ฐ์ด Q) ์ด์ค‘ for๋ฌธ์„ 2๋‹จ๋ถ€ํ„ฐ 9๋‹จ๊นŒ์ง€ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. public class Gugudan { public static void main(String[] args) { // Q) ์ด์ค‘ for๋ฌธ์„ 2๋‹จ๋ถ€ํ„ฐ 9๋‹จ๊นŒ์ง€ ์ถœ..

onelight-stay.tistory.com

์ง€๋‚œ๋ฒˆ์— ์šฐ๋ฆฌ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์—ˆ๋‹ค.

 

// ๋ฉ”์ธํ•จ์ˆ˜
public static void main(String[] args) {
		// Q) ์Šคํƒ์„ ํ‘œํ˜„ํ•˜์‹œ์˜ค. 
		// 10๊ฐœ์งœ๋ฆฌ ๋ฐฐ์—ด ์„ ์–ธ
		int[] stack = new int[10];
		
		// [0] : stack potiner
		// [1] : stack counter
		// [2] : poped data
		int[] stackInfo = new int[3];
		
		push(stack, stackInfo, 1);
		push(stack, stackInfo, 3);
		printStack(stack, stackInfo);
	}

์Šคํƒ์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜์ž๋ฉด, ์—ฌ๊ธฐ ๋ฉ”์ธํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค .

๋ฉ”์ธํ•จ์ˆ˜์•ˆ์—๋Š” ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•œ ์Šคํƒ์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

// ํ•จ์ˆ˜ push์™€ ํ•จ์ˆ˜ pop
public static boolean push(int[] stack, int[] si, int value)
	{
		// 1. ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ƒํƒœ๋ผ๋ฉด return false;
		if(si[1] == 10) 
		{
			System.out.println("Stack-overflow");
			return false;
		}
		// 2. ์Šคํƒํฌ์ธํ„ฐ ์œ„์น˜์— ๋ฐ์ดํ„ฐ ์ง‘์–ด๋„ฃ๋Š”๋‹ค.
		stack[si[0]] = value;
		
		//3. ์Šคํƒํฌ์ธํ„ฐ, ์Šคํƒ์นด์šดํŠธ ์ฆ๊ฐ€ 
		si[0]++;
		si[1]++;
		
		return true;
	}
	
	public static boolean pop(int[] stack, int[] si)
	{
		// 1. ์Šคํƒ์–ธ๋”ํ”Œ๋กœ์šฐ ์ƒํƒœ๋ผ๋ฉด return false;
		if(si[1] == 0) {
			System.out.println("Stack-underflow");
			return false;
		}
		
		// 2. si[2] ๋ฐ์ดํ„ฐ ์ €์žฅํ›„ (์Šคํƒํฌ์ธํ„ฐ - 1) ์œ„์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ๋บธ๋‹ค.
		si[2] = stack[si[0] - 1];
		stack[si[0] - 1] = 0;
		
		//3. ์Šคํƒํฌ์ธํ„ฐ, ์Šคํƒ์นด์šดํŠธ ๊ฐ
		si[0]--;
		si[1]--;
		
		return true;
		
	}

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์Šคํƒ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“  ํ•จ์ˆ˜๋„ ์žˆ๋‹ค๊ณ ํ•˜์ž.

 

๋งŒ์•ฝ ๋ฉ”์ธํ•จ์ˆ˜์™€ ๊ธฐ๋Šฅ๊ตฌํ˜„ํ•จ์ˆ˜๋ฅผ ๊ฐ™์€์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

 

 

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์Šคํƒ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” A๋ผ๋Š” ์‚ฌ๋žŒ์€ ์Šคํƒ์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ค์šด ๋‹จ์ ์ด ์กด์žฌํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๊ณ , ๋ฉ”์ธํ•จ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” B๋ผ๋Š” ์‚ฌ๋žŒ์€ ์Šคํƒ์„ pop์ด๋‚˜ push์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ์„ ๋ฌด์‹œํ•œ ์ƒํƒœ๋กœ ํŠน์ •๊ฐ’์„ ์ถ”์ถœํ•ด์˜ค๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 

์ฝ”๋“œ๊ฐ€ ๊ฐ„๋‹จํ•  ๊ฒฝ์šฐ์—” ๋ฌธ์ œ์ ์ด ๋˜์ง€ ์•Š๊ฒ ์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•  ๊ฒฝ์šฐ ์Šคํƒ์˜ ๊ธฐ๋Šฅ๊ณผ ์Šคํƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌ์‹œ์ผœ๋†จ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ž ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋‹ˆ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.

 

• Class

ํด๋ž˜์Šค๋ž€ Data์™€ Function์ด ํ•ฉ์ณ์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์˜๋ฏธํ•œ๋‹ค.

 

• Class์˜ ๋ฉ”๋ชจ๋ฆฌ๋งต

// Students ํด๋ž˜์Šค
public class Student {
	String name;
    
    void setName(String _name)
    {
    	name = _name;
	}
}


// main() ํ•จ์ˆ˜์•ˆ
Student st1 = new Student();
st1.setName("๋ฐ•๋ด‰๋ด‰");
System.out.println(st1.name); // ๋ฐ•๋ด‰๋ด‰

์ผ๋‹จ ์ฒซ๋ฒˆ์งธ๋Š” Students๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  _name์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” setName์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑํ•œ ๊ฒƒ์ด๋‹ค.

๋‘๋ฒˆ์งธ๋Š” ๋ฉ”์ธํ•จ์ˆ˜์•ˆ์—์„œ Student ํด๋ž˜ ์•ˆ์— ์žˆ๋Š” setName๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ ํ™”๋ฉด์— ๋„์šฐ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋‹ค.

 

์ด์ œ ์ด์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๋งต์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ฒŒ ๋˜๋Š”์ง€ ์„ค๋ช…์„ ํ•ด๋ณด์ž.

 

์ผ๋‹จ์€ ๋ฉ”์ธํ•จ์ˆ˜์—์„œ ์šฐ๋ฆฌ๋Š” Student ํด๋ž˜์Šค๋ฅผ new๋ผ๊ณ  ๋ถ™์—ฌ์ฃผ๋ฉด์„œ Student๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ํž™์•ˆ์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

์ด๋•Œ ์šฐ๋ฆฌ๋Š” ํž™์•ˆ์— ์žˆ๋Š” Student ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด(=memory object)๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์•ž์œผ๋กœ ์„ค๋ช…ํ•  ๋•Œ ๊ฐ์ฒด๋ผ๊ณ  ํ•˜๊ฒ ๋‹ค.

๊ฐ์ฒด๋Š” ํž™์ด๋ผ๋Š” ๊ณต๊ฐ„์•ˆ์— ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ st1์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์Šคํƒ์— ๋„ฃ์–ด์„œ Studnet๊ฐ์ฒด์˜ ์‹œ์ž‘์ •๋ณด๋ฅผ ๋‹ด์•„ ๋‘”๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋•Œ ์šฐ๋ฆฌ๋Š” ์˜๋ฌธ์ ์„ ๊ฐ€์ ธ์•ผ ํ•˜๋Š”๋ฐ ๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” name์€ ์ฐธ์กฐํ˜•์œผ๋กœ ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์•ˆ์— ๋„ฃ์–ด์„œ ์œ„์น˜์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜์ง€๋งŒ setName์€ ๋ฉ”์†Œ๋“œ๋กœ ๋ช…๋ น์–ด Set๋Š” ๊ธ€๋กœ๋ฒŒ์˜์—ญ์— ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค.

๊ทธ๋ž˜์„œ setName์€ ์˜ˆ์™ธ์ ์œผ๋กœ Studentํด๋ž˜์Šค์•ˆ์— ์žˆ์—ˆ์ง€๋งŒ ๊ธ€๋กœ๋ฒŒ ์˜์—ญ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ setName์€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™๋˜๋ ค๋ฉด Student๊ฐ์ฒด์— ์ ‘๊ทผํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Student๊ฐ์ฒด์˜ ์‹œ์ž‘์ •๋ณด(=์ฐธ์กฐ๊ฐ’)๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ setName๋ฉ”์†Œ๋“œ์—๊ฒŒ ๋„˜๊ฒจ์ฃผ๊ฒŒ ๋œ๋‹ค.

 

// Students ํด๋ž˜์Šค
public class Student {
	String name;
    
    void setName(String _name)
    {
    	this.name = _name; // <---------this๋กœ ์ ‘๊ทผ
	}
}

์ด๋ ‡๊ฒŒ ๊ฐ์ฒด์˜ ์‹œ์ž‘์ •๋ณด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์ค€ ๊ฒƒ์„ this๋ผ๊ณ  ํ•˜๋ฉฐ ์šฐ๋ฆฌ๋Š” this(Student์˜ ์ฐธ์กฐ๊ฐ’)์„ ๋ฐ›์Œ์œผ๋กœ์จ setName์€ Student๊ฐ์ฒด์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.

์ด๋•Œ์— this๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ƒ๋žต๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฉ”์†Œ๋“œ๋Š” ์‚ฌ์‹ค์ƒ ๋ชจ๋‘ this๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์œ„์˜ ๊นŒ์ง€๋Š” ์ƒ์„ฑ๋‹จ๊ณ„๋ผ๊ณ ํ• ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด์ œ ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ setName์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์•ผ ํ• ๋•Œ ์šฐ๋ฆฌ๋Š” Student๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ setName์— ์ ‘๊ทผํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Studnet๊ฐ์ฒด์•ˆ์—๋Š” ๊ธ€๋กœ๋ฒŒ์˜์—ญ์— ์žˆ๋Š” setName์˜ ์‹œ์ž‘์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์šฐ๋ฆฌ๋Š” ๊ธ€๋กœ๋ฒŒ์˜์—ญ์— ๋ช…๋ น์–ด(=๋ฉ”์†Œ๋“œ)๊ฐ€ ์žˆ์–ด๋„ ์‰ฝ๊ฒŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

• ์ ‘๊ทผ์ œ์–ด์ž (Access Modifier)

- public : ์ฝ๊ณ  ์“ฐ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

- private : ์ฝ๊ณ  ์“ฐ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ ์™ธ๋ถ€์ ‘๊ทผ์ž๊ฐ€ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค.

- protected

- default

=> ์ ‘๊ทผ์ œ์–ด์ž๋Š” ์ผ๋‹จ public๊ณผ private๋งŒ ํ•™์Šตํ•˜๋„๋ก ํ•œ๋‹ค.

 

public์€ ๋ฌด์กฐ๊ฑด ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ณ€๊ฒฝํ•˜๋Š” ํ–‰์œ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฐ ์–ด๋ ค์›€์€ ์—†์ง€๋งŒ private๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ฐ’์„ ์ฝ์–ด์˜ค์ง€๋„ ๋ชปํ•  ๋ฟ๋”๋Ÿฌ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ ์ž…์žฅ์œผ๋กœ์จ private๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์˜๋ฌธ์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋‹จ ์šฐ๋ฆฌ๊ฐ€ ์ ‘๊ทผ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์— ๋Œ€ํ•ด์„œ ๋ถ€ํ„ฐ ์•Œ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๊ฐ€ ๊ตญ์–ด, ์˜์–ด, ์ˆ˜ํ•™์˜ ๊ฐ’์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ์— ํ‰๊ท ์˜ ๊ฐ’์„ ๋ฐ›์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ๊ตญ์–ด, ์˜์–ด, ์ˆ˜ํ•™์˜ ๊ฐ’์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ์— ํ‰๊ท ๊ฐ’์„ ๊ตฌํ•ด์ฃผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•ด ๋‚ด๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ๊ตญ์–ด, ์˜์–ด, ์ˆ˜ํ•™ ๊ฐ’์— ์ƒ๊ด€์—†์ด ํ‰๊ท ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์„œ๋Š” ์•ˆ๋˜์ง€๋งŒ ๋งŒ์•ฝ ํ‰๊ท ๊ฐ’์ด public์œผ๋กœ ์„ค์ •๋˜์–ด์žˆ๋‹ค๋ฉด ๋‚ด๊ฐ€ ์–ธ์ œ๋“ ์ง€ ๋ฐ”๊พธ๊ณ  ์‹ถ์„๋•Œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ž„์˜๋กœ ํ‰๊ท ๊ฐ’์„ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์—†๊ฒŒ ํ‰๊ท ๊ฐ’์„ private๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

(๋งŒ์•ฝ, ๊ณผ๋ชฉ์— ๋Œ€ํ•œ ์ •๋ณด๋˜ํ•œ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด private๋กœ ์„ค์ •ํ•ด์ค˜๋„ ์ƒ๊ด€์—†๋‹ค)

 

๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

ํ‰๊ท ์˜ ๊ฐ’์„ private๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์„ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ์ฝ์„์ˆ˜ ์กฐ์ฐจ ์—†๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ๋ฐ”๋ฅธ private์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ์ผ๋‹จ ์ž„์˜๋กœ ๋ฐ”๊ฟ€์ˆ˜ ์—†๋Š” ๊ฐ’์— ๋Œ€ํ•ด private๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๋ฅผ ๋ชจ๋‘ ์ฐจ๋‹จํ•œ ๋‹ค์Œ์— ๊ทธ๋•Œ๊ทธ๋•Œ ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ๊ฐ’์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

• getter / setter

- ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ : ๋ฐ์ดํ„ฐ์— ๊ฒฐํ•จ์ด ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ธก๋ฉด์œผ๋กœ ๋ฐ”๋ผ๋ดค์„ ๋•Œ ํ’ˆ์งˆ์„ฑ์ด ์˜ฌ๋ผ๊ฐ„๋‹ค.

- ํŽธ๋ฆฌํ•จ : ์ง๊ด€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— readability๊ฐ€ ์ƒ์Šนํ•˜๊ฒŒ ๋˜๋ฉฐ, ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž…์žฅ์—์„œ ํŽธ๋ฆฌํ•˜๋‹ค.

 

- getter : ํด๋ž˜์Šค์•ˆ์— private๋กœ ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

- setter : private๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜์•ˆ์— ๊ฐ’์„ ๊ฐ€๊ณตํ•ด ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€