[Java] getter, setter

Jay Mild Lee·2022년 11월 22일
0

Java

목록 보기
5/10
post-thumbnail

I. 객체의 무결성

객체 지향 프로그래밍에서 객체의 데이터는 외부에서 접근하는 것을 차단해야한다. 왜냐하면 객체의 데이터를 외부에서 읽고 변경하게 되면 객체의 무결성이 깨지기 때문이다. 이를 위해 데이터는 외부에서 접근하지 않도록 막고, 객체 내부에 정의된 메소드를 통해 데이터를 변경한다.

II. getter

getter는 객체의 field에서 데이터를 불러오는 method를 의미한다. 가장 기본적인 형태는 다음과 같다.

static public class Student {
        // field
        private String name;
        private HashMap<String, Integer> scores;
        
        // getter for field name
        public String getName() {
            return name;
        }
        // getter for field scores
        public HashMap<String, Integer> getScores() {
            return scores;
        }
}

위 코드에서 getName()getScores()는 객체의 필드 값을 리턴한다. 이를 응용해서 field 값을 간단하게 수정해 수정된 값을 반환하는 getter method를 사용할 수도 있다.

static public class Car{
        // field
        private int speed;
        
        // getter for speed
        public int getSpeed() {
            return speed;
        }
        // getter for speed converted in km
        public double getSpeed_Km() {
        	double tmp = speed * 1.6;
            return tmp;
        }
}

III. setter

setter는 객체의 field에 데이터를 저장하는 method를 의미한다. 가장 기본적인 형태는 다음과 같다.

static public class Student {
        // field
        private String name;
        private HashMap<String, Integer> scores;
        
        // setter
        public void setName(String name) {
            this.name = name;
        }
        public void setScores(HashMap<String, Integer> scores) {
            this.scores = scores;
        }
}

위 코드에서 setName()setScores()는 객체의 필드 값에 input받은 값을 저장한다. 이를 응용해서 field 값을 간단하게 수정해 수정된 값을 저장하는 setter method를 사용할 수도 있다.

static public class Car{
        // field
        private int speed;
        
        // setter for speed
        public void setSpeed(int speed) {
        	if(speed < 0){
            	speed = 0;			// 입력값이 0보다 작은 경우 0을 저장
            }
            this.speed = speed;
        }
}

0개의 댓글