티스토리 뷰
▶getter와 setter - 데이터를 보호한다 단축키는 alt+shift+s, r
오늘은 자바를 배운지 얼마 되지 않게 알게된 getter와 setter에 대해 정리해 보려고 합니다.
Getters and Setters in Java Explained
Getters and setters are used to protect your data, particularly when creating classes. For each instance variable, a getter method returns its value while a setter method sets or updates its value. Given this, getters and setters are also known as accessor
www.freecodecamp.org
🔎 getter, setter는 데이터를 보호하기 위해 사용! 특히 클래스를 생성할 때
💡 getter는 인스턴스 변수를 반환하고 setter는 인스턴스 변수를 대입하거나 수정합니다.
관습에 따라 getter는 변수 앞에 get, setter은 변수 앞에 set이 붙고 그 변수들의 앞글자는 대문자로 합니다.
public class Vehicle {
private String color;
// Getter
public String getColor() {
return color;
}
// Setter;
pubic void setColor(String c) {
this.color = c;
}
}
getter는 객체의 변수를 반환하고
setter는 파라미터를 받아서 변수에 할당합니다.
getter와 setter가 정의되면 main 메소드에서는 다음과 같이 사용할 수 있습니다.
public static void main(String[] args) {
Vehicle v1 = new Vehicle();
v1.setColor("Red");
System.out.prinln(v1.getColor()); // Red
}
getter와 setter로 값들을 처리할 수 있습니다.
🔎 그래서 getter와 setter를 사용하는 이유?
getter와 setter를 통해 값에 대해 얼마나 중요하게 다룰지 조절할 수 있습니다.
간단하게 아래의 예제를 살펴봅시다.
public void setNumber(int number) {
if (number < 1 || number > 10) {
throw new IllegalArgumentException();
}
this.number = num;
}
위의 setter을 통해 1과 10 사이의 숫자들만 number 변수에 할당할 수 있다.
아래와 같이 직접 수정하는 것보다 훨씬 나은 방식입니다.
obj.number = 13;
1과 10 사이의 값만을 원하는데 13을 할당한 경우입니다.
이렇게 값을 대입하면 원치 않은 에러나 결과가 나올 수 있겠죠?
number 변수를 private으로 지정하고 setNumber 메소드를 이용하면 이와 같은 문제를 예방할 수 있습니다.
number이 private이므로 number을 불러오면서 자연스럽게 getter 메소드가 있어야 합니다.
public int getNumber() {
return this.number;
}
'백엔드 > Java' 카테고리의 다른 글
[Java] 자바의 Object 클래스에 대해 알아보자 (0) | 2023.02.09 |
---|---|
[Java] API란? 자바에서 API(.jar) 배포 | 빌드하는 방법 (0) | 2023.02.09 |
[Java] 컴파일(Compile)과 런타임(Runtime) (0) | 2023.02.09 |
[Java] Try-Catch문 - 예외 처리/커스텀 예외/예외던지기 (0) | 2023.02.09 |
[Java] 자바의 함수형 인터페이스(Functional Interface) - 추상 메소드가 오직 한 개인 인터페이스 (0) | 2023.02.05 |
- Total
- Today
- Yesterday
- CSS
- 인프런
- 디프만
- rtl
- Python
- 리액트
- 자바스크립트 기초
- 자바스크립트
- 프론트엔드 공부
- 프로젝트 회고
- 리액트 훅
- 파이썬
- TypeScript
- 딥러닝
- 데이터분석
- frontend
- 타입스크립트
- 자바
- testing
- react
- 프론트엔드
- HTML
- next.js
- 프론트엔드 기초
- JSP
- 스타일 컴포넌트 styled-components
- 머신러닝
- styled-components
- jest
- react-query
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |