티스토리 뷰

반응형

 

09. 클래스와 객체 - 09-10. 정보 은닉 - 1,2

 

| 접근제어자

변수 , 메서드, 생성자에 대한 접근 권한의 지정

public , private, protected , 아무것도 안쓰는 경우( 기본 접근 제어자 => 같은 package 내에서만 접근 가능)

private 를 사용하면 클래스 외부에서는 접근할 수 없음.

 

| 정보 은닉

외부에서 클래스 내부의 정보에 접근하지 못하도록 함.

private 키워드를 활용

private 변수를 외부에서 접근하게 하려면 public 메서드를 제공함.

클래스 내부 데이터를 잘못사용하는 오류를 방지할 수 있음.

package hiding;

public class MyDate {

	private int day; 
	private int month;
	private int year;
	
	private boolean isValid;
	
	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) {
			isValid = false;
		}
		else 
			this.month = month;
	}

	public int getYear() {
		return year;
	}

	public void setYear(int year) {
		this.year = year;
	}

	public void showDate() {
		
		if ( isValid) {
			System.out.println( year + "년 " + month + "월 " + day + "일 입니다."  );
		}
		else {
			System.out.println("유효하지 않은 날짜 입니다");
		}
	}
}
package hiding;

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(2020);
	}

}
  • get 만 가능하고 set 못하게 -> readonly
  • 넣어지는 값에 대한 validation 

 

 

 

 

 

 

 

 

자바 인강이 듣고 싶다면 => https://bit.ly/3ilMbIO

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함