๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ด๋ก /Study

์ ‘๊ทผ์ œ์–ด์ž์™€ ์ •๋ณด์€๋‹‰

by 6161990 2021. 7. 20.

๐Ÿ“Œ ์ ‘๊ทผ์ œ์–ด์ž access modifier

  • ์ฐธ๊ณ  : ๊ฐ์ œ ์ง€ํ–ฅ ์–ธ์–ด OOP
  • ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ ์ง€์ •.
  • private, public, protected, ์•„๋ฌด๊ฒƒ๋„ ์•ˆ์“ฐ๋Š” ๊ฒฝ์šฐ(๊ธฐ๋ณธ ์ ‘๊ทผ ์ œ์–ด์ž: ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ).
  • private์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ.private ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ํด๋ž˜์Šค ์•ˆ์œผ๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ์—๋Š” ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•˜๊ธฐ์œ„ํ•ด์„œ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ํด๋ž˜์Šค์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ.

์ฐธ๊ณ  : ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

๐Ÿ“Œ ์ •๋ณด์€๋‹‰ information hiding

  • privateํ‚ค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•ด ์™ธ๋ถ€์—์„œ ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ์ •๋ณด์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋กํ•จ.
  • private๋ณ€์ˆ˜๋ฅผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด public ๋ฉ”์„œ๋“œ ์ œ๊ณตํ•จ. ์ฃผ๋กœ get,set.
  • public ๋ฉ”์†Œ๋“œ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์„œ ์ •๋ณด๋ฅผ ํ•ธ๋“ค๋งํ•˜๋ฉด ๋œ๋‹ค.
  • ํด๋ž˜์Šค ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋„๋ก ์˜๋„๋œ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒํ•จ.
  • why ์ •๋ณด์€๋‹‰์„ ํ†ตํ•ด public ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๊ฐ€?1. ์œ ํšจํ•œ data๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ 2. data๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์ด์šฉํ•œ ์ •๋ณด์€๋‹‰

public class MyDate {
  private int day; 
  private int month; 
  private int year; 
  private boolean isVaild = true; 

  public void setDay(int day){ 
 	 this.day = day; 
  } 

  public int getDay(){ 
 	 return day; 
  } 

  public int getMonth(){ 
 	 return month; 
  } 

  public void setMonth(int month){ 
    if (month <1 || month > 12 ){ 
   	    isVaild = false; 
    } else {
    	this.month = month; 
    } 
    public int getYear(){ 
   		return year; 
    }
    public void setYear(int year){ 
    	this.year = year; 
    } 
   public void showDate(){ 
    if(isVaild){ 
    	Systme.out.println(year+ "๋…„" + month + "์›”" + day + "์ผ ์ž…๋‹ˆ๋‹ค."); 
    } else { 
    	Systme.out.println("์œ ํšจํ•˜์ง€ ์•Š์€ ๋‚ ์งœ์ž…๋‹ˆ๋‹ค."); 
    } 
  } 
}



public class MyDateTest { 
  public static void main(String[] args) { 
    MyDate date = new MyDate(); 
    date.setYear(2019); 
    date.setMonth(77); 
    date.setDay(100); 
    date.showDate(); 
    
    MyDate date2 = new MyDate(); 
    date2.setYear(2002); 
    date2.showDate(); 
  } 
}