JAVA get, set 사용 이유와 사용 방법

Noahddd·2024년 10월 21일

JAVA

목록 보기
2/12

공부의 정리 및 복습을 위한 기록입니다.

자바 콘솔창에서 간단하게 학생의 정보를 입력받고 저장하여 조회할 수 있는 프로그램을 만들며 공부했던 내용들을 적용 시켜 보며 복습을 하는 중 get과 set의 내용을 정리 해보려 한다.

먼저 자바에서 get과 set은
자바의 객체 지향 프로그래밍에서 중요한
캡슐화, 유연성, 유효성 검사 등을 위해서 필요한 메소드이다.

직접 필드에 접근하지 않고 get과 set 메소드를 사용하여 접근을 해야하기 때문에 객체의 무결성이 유지된다.

set 메소드에서 값을 설정하기 전에 유효성 검사를 할 수있다 ex.학년은 0학년이 될 수없다.

get과 set의 선언 방식이다

public class Student {
    private String name;
    private int year;
    private int studentClass;
    private int id;
    Scanner sc = new Scanner(System.in);
    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        while (year < 1) {
            System.out.println("학년은 1학년 이상이어야 합니다. 다시 입력해주세요.");
            year = sc.nextInt();
        }
        this.year = year;
    }

위와 같이 Student 클래스에는 여러 필드가 있으며 이 필드에 접근하기 위하여 getYear과 setYear을 사용하였다.

get은 값을 가져오는 목적의 메소드이기 대문에 return이 필요하며,
set은 값을 할당하는 목적의 메소드이기 때문에
public void setYear(int year)와 같이 값을 매개변수로 받아야한다.

또한 setYear 메소드에서 학년으로 1 미만의 값이 들어온다면 유효성 검사를 통하여 재입력을 요구하고 유효한 값이 들어온다면 this.year에 할당하도록 하였다.

이처럼 get과 set메소드를 통하여 학년을 뜻하는 Year변수에 대하여 데이터를 보호하고, 유효성 검사를 통한 올바른 값이 할당 될 수있도록 하여 데이터 보호와 코드의 유연성을 확보하였다.


공부하며 정리와 복습을 위해 저장한 기록입니다. 틀린 부분 및 개선할 부분이 있다면 알려주시면 감사하겠습니다 !

profile
꿈이 많은 개발자 호소인

0개의 댓글