자바 객체지향 프로그래밍에서는 데이터를 효과적으로 관리하고 외부 접근을 안전하게 제어하기 위해 Getter와 Setter메서드를 활용합니다.
이 기능들을 정보 은닉과 캡슐화의 핵심이며, 데이터 클래스의 설계를 보다 효과적으로 만들어줍니다.
Getter와 Setter의 역할
Getter는 클래스의 필드값을 외부에서 읽을 수 있도록 해주고, Setter는 필드 값을 변경할 수 있도록 해줍니다. 이를 통해 데이터의 캡슐화가 이루어지며, 외부에서 직접 접근하지 못하도록 하는 정보 은닉이 가능해집니다.
클래스 A의 예시를 살펴보면, private로 선언된 필드에 대한 Getter와 Setter를 제공하여 외부에서 안전하게 데이터를 다룰 수 있도록 합니다.
class A {
private int a;
public A() {} // 기본 생성자
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
데이터 관리 클래스의 활용
Ex0 클래스는 개인정보를 관리하는 예시로 이름과 나이를 필드로 가지고 있습니다. 나이는 클래스 A를 통해 안전하게 관리되며, Setter를 통해 값을 설정합니다.
public class Ex0 {
private String name;
private A age;
public Ex0() {
age = new A();
}
public Ex0(String name, int age) {
this.name = name;
this.age = new A();
this.age.setA(age);
}
public String getName() {
return name;
}
public int getAge() {
return age.getA();
}
public static void main(String[] args) {
Ex0 stu = new Ex0("super", 30);
System.out.println("이름: " + stu.getName());
System.out.println("나이: " + stu.getAge());
}
}
일관성을 유지하는 이유
생성자와 Setter이 같은 값을 설정하는 이유는 사용자가 편의성을 느낄 수 있도록 하기 위함입니다. 사용자는 생성자를 호출하거나 Setter를 이용하여 일관된 방식으로 값을 설정할 수 있습니다.
개인적으로는 아무 값도 들어있지 않은 빈 사용하지 않아 필요없더라도 생성자를 하나 만들어둡니다.
빈 생성자를 포함하는 것은 클래스를 사용하는 사람들에게 편의를 제공합니다. 때로는 사용자가 객체를 생성할 때 매개변수를 전달하지 않고도 객체를 생성하고자 할 수 있습니다.
사람마다 코딩 스타일은 다 다르니 ...
'코딩 > JAVA' 카테고리의 다른 글
Java VSCode에서 게터세터(getter, setter) 쉽게 만들기 source action 자동생성 (22) | 2024.03.04 |
---|---|
java 자바에서 상속과 오버로딩: 객체지향 프로그래밍의 기초 (28) | 2024.02.08 |
JAVA 메서드(method)의 이해와 활용 (0) | 2024.02.05 |
Java 인텔리제이 디버깅 모드 사용하는 이유와 사용법 직접 사용해보자 (0) | 2024.02.01 |
Java에서 String과 메모리 할당: 주소값과 데이터값 이해하기 (0) | 2024.01.19 |