객체 지향 프로그래밍(OOP)에서의 Getter 메서드와 정보 은닉
객체 지향 프로그래밍(OOP)에서 중요한 개념 중 하나인 Getter 메서드와 정보 은닉에 대해 알아보겠습니다. 객체 지향 프로그래밍에서는 데이터와 행위를 하나의 단위로 묶어 관리하며, 정보 은닉을 통해 데이터의 안전성을 보호합니다. Getter 메서드는 이러한 정보 은닉을 지원하는 핵심 도구 중 하나입니다.
정보 은닉과 Getter 메서드
정보 은닉은 객체 지향 프로그래밍의 핵심 원칙 중 하나로, 객체의 상태(데이터)를 외부에서 직접 접근할 수 없도록 보호하는 것을 의미합니다. 이를 통해 데이터의 무결성을 유지하고 객체 간의 결합도를 낮춥니다.
Getter 메서드는 정보 은닉을 실현하는데 도움을 주는 메서드입니다. Getter 메서드는 객체의 상태(멤버 변수)에 접근할 수 있는 공개된 인터페이스를 제공하면서, 데이터를 읽을 때 데이터의 유효성을 검사하거나 수정하지 않고 반환합니다. 이를 통해 데이터에 대한 접근을 제어하고 안전하게 데이터를 사용할 수 있습니다.
Developer2 클래스와 Getter 메서드
먼저, Developer2 클래스를 살펴보겠습니다. 이 클래스는 개발자 정보를 저장하고 관리하는 클래스로, 정보 은닉을 실현하기 위해 Getter 메서드를 사용합니다.
public class Developer2 {
String name = "홍길동";
String job = "개발자";
int avgIncome = 100;
int projectCareer;
// ... 이전에 정의한 메서드들 ...
// Getter 메서드 정의
public String getName() {
System.out.println("getName() 메서드");
return name;
}
public String getJob() {
System.out.println("getJob() 메서드");
return job;
}
public int getAvgIncome() {
System.out.println("getAvgIncome() 메서드");
return avgIncome;
}
public int getProjectCareer() {
System.out.println("getProjectCareer() 메서드");
return projectCareer;
}
}
위 코드에서는 `getName()`, `getJob()`, `getAvgIncome()`, `getProjectCareer()`와 같이 Getter 메서드를 정의하고 있습니다. 이 메서드들은 각각 이름, 직업, 평균 수입, 프로젝트 경력과 같은 상태 정보를 반환합니다.
Developer2Test 클래스: Getter 메서드 사용 예제
이제 Developer2Test 클래스를 사용하여 Getter 메서드를 통해 개발자 정보를 읽어보겠습니다.
public class Developer2Test {
public static void main(String[] args) {
Developer2 developer = new Developer2();
System.out.println("이름은: " + developer.name);
System.out.println("직업은: " + developer.job);
System.out.println("평균 수입은: " + developer.avgIncome);
System.out.println("PJT 경력은: " + developer.projectCareer);
System.out.println("===================");
String name = developer.getName();
String job = developer.getJob();
int avgIncome = developer.getAvgIncome();
int projectCareer = developer.getProjectCareer();
System.out.println("이름은: " + name);
System.out.println("직업은: " + job);
System.out.println("평균 수입은: " + avgIncome);
System.out.println("PJT 경력은: " + projectCareer);
}
}
위 코드에서는 Developer2 클래스의 객체를 생성하고, Getter 메서드를 통해 객체의 상태 정보를 읽어와 출력합니다. 이와 같이 Getter 메서드를 사용하면 객체의 정보를 안전하게 읽을 수 있으며, 정보 은닉을 유지하면서 객체의 데이터를 사용할 수 있습니다.