[Java] private 데이터 은닉(get, set)

Jinsung·2021년 4월 28일
0

JAVA

목록 보기
9/12
post-thumbnail

private

접근 제한자로 클래스 안에서만 공유가 가능하지만 외부로부터 데이터 속성 변질되는 것을 막는 역할을 한다.

예를 들어 직원 급여 프로그램에서, 급여나 사원 번호(int), 이름(String) 지정 되어 있으면 public으로 되어 있으면 변질 우려가 있으나 private로 하면 변질되는 것을 막는다.

getter, setter

private 변수를 외부에서 접근하게 하려면 public 메소드 사용해야하는데 그게 get, set 메서드 이다.

get -> 값을 얻어오기
set -> 값 지정하기

Class

package project;

public class DateClass {
	
    private int month;  // 은닉 변수
    private int day;    // 은닉 변수
    
    public int getMonth() {  //get으로 month 값 얻기
        return month;
    }
    
    public void setMonth(int month) { //set으로 값 범위 지정
        if(month >= 1 && month <= 12) {
            this.month = month;
        } else {
            System.out.println("잘못된 월!!");
            System.exit(0);
        }
    }
    
    public int getDay() {  //get으로 day 값 얻기
        return day;
    }
    
    public void setDay(int day) {  // set으로 값 범위 지정
        int days = 0;
        switch(month) {
            case 2:
                days = 28;
                break;
            case 4: case 6: case 9: case 11:
                days = 30;
                break;
            default: days = 31;
        }
        if(day <= days) {
            this.day = day;
        } else {
            System.out.println("잘못된 날짜!!");
            System.exit(0);
        }
    }
}

MainClass

package project;

import java.util.*;

public class mainClass {
	
	public static void main(String[] args) {
		
		DateClass da = new DateClass();
        Scanner sc = new Scanner(System.in);
        
        System.out.println("월을 입력해주세요");
        da.setMonth(sc.nextInt());
        System.out.println("날짜를 입력해주세요");
        da.setDay(sc.nextInt());
        
        System.out.println("오늘은 " + da.getMonth() + "월 "
        	               + da.getDay() + "일 입니다.");
	}

}

결과값

월을 입력해주세요
3
날짜를 입력해주세요
11
오늘은 3월 11일 입니다.

0개의 댓글