실전 자바 강좌 (ver.2018) - 초보부터 개발자 취업까지!! 강의를
개인공부하며 정리하는 용도의 포스팅입니다.
학습목표
- 객체가 가지고 있는 데이터를 외부로부터 변질되지 않게 보호하는 방법 학습
멤버 변수의 private 설정
멤버 변수(속성)는 주로 private으로 설정해서, 외부로부터 데이터가 변질되는 것을 막는다
데이터(속성) 변질이 우려되는 시나리오
- 직원 급여 프로그램에서, 급여 담당자가 실수로 급여액을 잘못 입력하는 경우
- 변경될 수 없는 사번이 변경 되는 경우
package com.java.employee;
public class Employee {
// 외부에서 쉽게 데이터를 변경할 수 있다
String name;
String no;
int pay;
// 여기까지
public Employee(String name, String no, int pay) {
this.name = name;
this.no = no;
this.pay = pay;
}
}
setter, getter
멤버 변수를 외부에서 변경할 수 있도록 하는 메서드이다
- MainClass
import com.java.employee.Employee;
public class MainClass {
public static void main(String[] args) {
Employee employeePark = new Employee("박찬호", "2018-00001", 1000000);
employeePark.getInfo();
//employeePark.no = "2018-00002";
//employeePark.pay = 900000;
// 이 부분이 아래에 있는 Employee 클래스에 영향을 준다
employeePark.setName("박병호");
employeePark.setPay(900000);
// 여기까지
employeePark.getInfo();
}
}
- Employee
public void setName(String name) {
System.out.println(" -- The name can not be modified.-- ");
}
public void setNo(String no) {
System.out.println(" -- the no can not be modified.-- ");
}
public void setPay(int pay) {
if(pay < 1000000) {
System.out.println(" -- The salary can not be reduced to less than 1,000,000 won.-- ");
} else {
System.out.println(" -- The salary has been modified -- ");
this.pay = pay;
}
}
Comments