Java 강의
- Method Area - 클래스 정보 저장공간
- Stack Area - 메서드 실행 시 사용되는 공간(지역변수, 호출정보 등)
- Heap Area - 객체가 생성되어 저장되는 공간
내부 상태를 변경할 수 없는 객체
접근제어자로 접근을 막아 놓고 다시 세터로 외부에 노출하면 막는 의미가 사라짐
ex)
public class DataStore {
private String store;
public void setStore(String data) {
this.store = data;
}
}
이런 경우 올바른 데이터만 저장될 수 있도록 제한해야 함
ex)
public class DataStore {
private String store;
public void setStore(String data) {
if ("B".equals(data)) {
System.out.println("❌ 'B'는 입력할 수 없습니다!");
} else {
this.store = data;
}
}
}
어떤 속성이 있을 때 하나씩 따로 세터로 정의하면 코드 중복이 많이 일어남
ex)
public class Robot {
private boolean leftLeg; // 세터필요
private boolean rightLeg;// 세터필요
private boolean leftArm; // 세터필요
private boolean rightArm;// 세터필요
private boolean leftEye; // 세터필요
private boolean rightEye;// 세터필요
}
Robot robot = new Robot();
robot.setLeftLeg(true); // ✅ 왼쪽 다리 움직임
robot.setLeftArm(true); // ⚠️ 왼쪽 팔을 먼저 움직이면 균형이 깨짐
robot.setRightLeg(true); // ✅ 오른쪽 다리 움직임
...
이런 경우 전체를 묶어서 한 기능으로 만들어야 함
public class Robot {
private boolean leftLeg;
private boolean rightLeg;
private boolean leftArm;
...
public void walk(boolean power) {
System.out.println("🚶 왼쪽 다리 앞으로!");
leftLeg = power;
System.out.println("🚶 오른쪽 다리 앞으로!");
rightLeg = true;
...
}
}
어제 늦게 자서 그런가 오늘 컨디션이 말이 아니다. 6시까지는 그나마 잘 버틴 것 같은데 밥 먹고 나서부터 집중이 아예 안 됐다. 일단 오늘은 푹 자고 내일은 집중해서 해야 겠다.