티스토리 뷰
setter & getter 란?
- 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다.
- 예를 들어 자동차의 속도가 음수가 될 수 없는데, 외부에서 음수로 설정하면 무결성이 깨진다.
- 따라서 객체지향 프로그래밍에서는 메서드를 통해 변경하는 방법을 선호한다.
- 데이터는 외부에서 접근하지 않도록 막고, 메서드는 공개를 해서 외부에서 메서드를 통해 데이터를 접근하도록 유도한다.
외부에서 직접적으로 접근하지 못하게 필드를 선언하는 방법
저번글에서 접근제한자에 대해 배웠다 접근제한자 기억나지 않는다면
[JAVA] 메서드(method)
변수의 생명주기 메서드를 자세히 보기 전에 변수의 생명주기에 대한 이해가 필요하다. 변수 종류 생명주기 지역변수 지역변수를 선안한 중괄호 내에서만 유효하다. 매개변수(파라미터) 메서드
treebomb-code.tistory.com
이 글을 다시 읽어보자.
접근제한자를 활용하여 변수를 선언해 보자
public class Car {
private int speed; //메인에서 접근하지 못하게 private를 붙임
}
private는 현재 클래스 내에서만 접근을 허용하는 접근제한자이다.
이제 setter와 getter 메서드를 만들어보자.
setter
//setter
//외부에서 메서드를 통해 필드에 접근하고 검증할 수 있도록
//유도하는 것
public void setSpeed(int s) {
if(s < 0) {
speed = 0;
return;
} else {
speed = s;
}
}
setspeed가 setter고 getspeed가 getter이다. 위에서 설명했듯이 속도는 0이 될 수 없기 때문에 setter를 통해 규칙을 선언해 주는 것이다. 파라미터(매개변수)로 받은 값이 0 미만이라면 speed를 0으로 만들고 그것이 아니라면 다 양수이기 때문에 speed를 s(파라미터)로 설정해 주는 기능이다.
getter
//getter
//private으로 설정된 필드를 객체 외부에서 값을 불러오기 위해
//구현하는 메서드를 getter라고 한다.
//private 필드는 객체 외부에서는 접근이 불가능 하지만, 필드가
//선언된 클래스에서는 어디서든 접근이 가능하다.
//메서드를 통해서 필드에 들어있는 값을 반환받을 수 있다.
public int getSpeed() {
return speed;
}
private 설정한 필드는 외부에서 필드 자체를 불러오는 것이 불가능하기 때문에 getter메서드를 만들어서 값을 반환을 해줘야 한다. 코드는 매우 간단한 것을 확인할 수 있다.
실행용 클래스에서 확인하기
코드
public class CarMain {
public static void main(String[] args) {
Car c1 = new Car();
c1.setSpeed(-30);
System.out.println("차의 속도 : " + c1.getSpeed());
c1.setSpeed(70);
System.out.println("차의 속도 : " + c1.getSpeed());
}
}
결과
차의 속도 : 0
차의 속도 : 70
처음에 setter에 음수를 넣었지만 speed가 음수가 아닌 0으로 들어간 것을 보며 정상적으로 작동하는 것을 확인할 수 있다.
setter&getter 쉽게 만들기
public class GetSetter {
private int num1;
private char c1;
}
예를 들어 이런 코드가 있다고 가정해 보자.
이클립스에서는 setter와 getter를 자동으로 만들어주는 기능을 제공하고 있다.

우클릭을 누른 후 Source로 들어가면 Generate Getter and Setters가 나온다 저걸 누르면

이런 창이 나오는데 안에 보면 우리가 private로 만든 c1과 num1이 있는 걸 확인할 수 있다.
여기서 getter&setter를 만들고 싶은 것들을 체크하고 Generate를 해주면 된다.

그럼 자동으로 getter와 setter가 만들어지는 것을 확인할 수 있다.
다음 글에서는 생성자를 확인해 보자.
[JAVA] 생성자(Constructor)
생성자란? - 클래스를 구성하는 구성요소중 하나인 생성자는 객체를 생성할 때 호출되어 객체의 초기화를 담당하는 특별한 메서드다. - 객체를 생성하고 초기화 하기 위해서는 반드시 생성자를
treebomb-code.tistory.com
'Java' 카테고리의 다른 글
| [JAVA] 오버로딩(OverLoading), this, this() (0) | 2023.12.20 |
|---|---|
| [JAVA] 생성자(Constructor) (0) | 2023.12.19 |
| [JAVA] 메서드(method) (0) | 2023.12.14 |
| [JAVA]클래스(Class) (0) | 2023.12.13 |
| [JAVA]배열2(Arrays) (0) | 2023.12.01 |
- Total
- Today
- Yesterday
- 생성자 쉽게 만들기
- 자바 this()
- 모바일프레임워크
- 변수 생명주기
- 자바 세터
- 자바기초
- getter setter 쉽게 만들기
- 자바 클래스 설명
- 자료형
- java overloading
- 자바 배열 초기화
- 코딩
- 게터세터 쉽게 만들기
- 배열 내림차순
- 자바 기초
- 생성자 위치
- 생성자 호출 위치
- 자바 생명주기
- 자바 배열
- java기초
- 자바 클래스 이해
- 자바 배열 내림차순 정렬
- 자바
- 생성자를 써야하는 이유
- 자바 배열 생성
- 생성자란
- 자바 게터
- Java
- 코린이
- 자바 Arrays
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |