LoGin
article thumbnail
반응형

 

 

자바 객체지향 프로그래밍에서는 데이터를 효과적으로 관리하고 외부 접근을 안전하게 제어하기 위해 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를 이용하여 일관된 방식으로 값을 설정할 수 있습니다.

 

개인적으로는 아무 값도 들어있지 않은 빈 사용하지 않아 필요없더라도 생성자를 하나 만들어둡니다.

 

빈 생성자를 포함하는 것은 클래스를 사용하는 사람들에게 편의를 제공합니다. 때로는 사용자가 객체를 생성할 때 매개변수를 전달하지 않고도 객체를 생성하고자 할 수 있습니다.

 

사람마다 코딩 스타일은 다 다르니 ...

728x90
반응형
profile

LoGin

@LoGinShin

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!