Getter, Setter란 무엇인가?
Getter와 Setter는 자바에서 주로 사용되는 방법론 중 하나로, 객체지향 프로그래밍의 캡슐화 원칙을 적용하는데 사용된다. 이들은 클래스의 내부필드에 대한 읽기/쓰기 접근을 제어하는 메서드이다.
사용하는 주요 이유
- 데이터 보호 : 필드를 직접 조작하는 것보다 메서드를 통해 데이터에 접근하게 함으로써 데이터의 보호를 가능하게한다. 이를 통해, 클래스의 필드에 대한 읽기 및 쓰기 작업을 정교하게 제어할 수 있다.
- 캡슐화 : 클래스의 필드와 이를 사용하는 코드를 캡슐화하면, 클래스의 내부구현이 외부로부터 은폐되므로 클래스를 보다 안전하게 사용할 수 있다. 나중에 클래스의 내부 구현을 변경해야 할 경우에도 캡슐화가 용이하게 해준다.
- 유효성 검사 : Setter메서드는 데이터의 유효성을 검사하는 로직을 추가함으로써 유효하지 않는 데이터가 필드에 설정되는 것을 막을 수 있다.
- 추가적인 행동 : 필드의 값이 변경될 때 추가적인 행동을 수행하도록 할 수 있다. 예를 들어, property의 값이 변경될 때 이벤트를 발생시키거나, 추가적인 계산을 수행하는 등의 작업을 수행할 수 있다.
예제
class Person{
//Field
private String name;
private int age;
private int height;
private int weight;
//Constructor
Person(){
}
//Method
public String getName() {return name;}
public void setName(String name) {
this.name = name;
}
public int getAge() {return age;}
public void setAge(int age) {
this.age = age;
}
public int getHeight() {return height;}
public void setHeight(int height) {
this.height = height;
}
public int getWeight() {return weight;}
public void setWeight(int weight) {
this.weight = weight;
}
}
public class oop_InheritanceSample3 {
public static void main(String[] args) {
// [1] : 객체생성
Person person1 = new Person();
person1.setName("홍길동");
person1.setAge(20);
person1.setHeight(180);
person1.setWeight(75);
System.out.println("이름 : " + person1.getName());
System.out.println("나이 : " +person1.getAge());
System.out.println("키 : " + person1.getHeight());
System.out.println("몸무게 : " + person1.getWeight());
}
}
이름 : 홍길동
나이 : 20
키 : 180
몸무게 : 75
1. 클래스 : Person class를 정의하였다. 이 클래스는 이름, 나이, 키, 몸무게와 같은 속성을 가지고있다. 이 속성들은 private으로 선언되어 있어서 클래스 외부에서 직접 접근할 수 없다.
2. Getter, Setter 메서드 : private으로 선언된 변수들에 접근하기 위해 getter와 setter메서드를 사용한다. getter메서드는 해당 변수의 값을 가져오는 역할을 하고, setter메서드는 해당 변수의 값을 설정하는 역할을 한다.
3. 객체 생성 : Person class 객체 "person1"를 생성하여, 이 객체 이름, 나이, 키, 몸무게를 설정하기 위해 setter메서드를 사용하였다.
4. 값 출력 : person1 객체의 속성값을 출력하기 위해 getter메서드를 사용하였다.
getter와 setter를 사용함으로써 클래스의 필드를 적절히 보호하고, 캡슐화를 통해 더 안전한 코드를 작성할 수 있게한다.
'Java > JAVA 100 문제 풀이' 카테고리의 다른 글
자바 part.3 문제풀이 - 객체배열의 이해와 다형성 활용 (0) | 2023.07.25 |
---|---|
자바 part.3 문제풀이 - 상속과 캡슐화 (0) | 2023.07.25 |
자바 part.3 문제풀이 - 상속과 메서드 오버라이딩 이해하기 (0) | 2023.07.25 |
자바 part.3 문제풀이 - 상속 : Person과 Hero예제를 통한 이해 (0) | 2023.07.25 |
자바 part.3 문제풀이 - 상속(Inheritance)의 이해와 활용 (0) | 2023.07.24 |