반응형
캡슐화(encapsulation)
- 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶는다.
- 실제 구현 내용 일부를 외부에 감추어 은닉한다.
접근제어자 private
package com.java.capsule; //1005상속-1 private(정보은닉)
public class Time {
private int hour;
private int minute; // 0~59 논리적오류
private int second;
//1005상속-2 (상수)final의미, 초기화
//final double PI = 3.14; // 1005 2 - 상수(생성자를 통한 초기화 가능.)
//final double PI;
// public Time(double pi) {
// super();
// PI = pi;
// }
// 정보은닉 / 캡슐화 구현 (getter, setter)
// getter / setter 메소드를 직접적으로 노출시기진 않지만 간접적으로 사용할 수 있도록 하는 것 -반드시 public, 쌍으로
// 이루어져야 함
// get 뒤 변수 첫글자를 대문자로 한다는게 규칙, public이여야 하며, 변수와 같은 타입으로 작성
// source - generate getters and setters 자동생성
public int getHour() {
return hour;
}
// 유효성 검증
public void setHour(int hour) {
if (hour < 0 || hour > 23) { // 원하지 않는 값이 넘어왔을 경우 넣지 않기위함
System.out.println("유효하지 않은 값입니다.");
return;
}
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if (hour < 0 || hour > 59) { // 원하지 않는 값이 넘어왔을 경우 넣지 않기위함
System.out.println("유효하지 않은 값입니다.");
return;
}
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if (hour < 0 || hour > 59) { // 원하지 않는 값이 넘어왔을 경우 넣지 않기위함
System.out.println("유효하지 않은 값입니다.");
return;
}
this.second = second;
}
}
package com.java.capsule;//1005상속-1 private(정보은닉)
public class TimeTest {
public static void main(String[] args) {
Time t = new Time();
//Time t = new Time(3) //final double PI 생성자
//t.hour = 59;// private으로 사용 불가하게 됨
t.setHour(48);//시간(int) 기본값 0~23
System.out.println(t.getHour());
}
}
반응형
'java' 카테고리의 다른 글
(abstract)추상메서드 (0) | 2022.10.06 |
---|---|
1005_lombok.jar 설치 (0) | 2022.10.05 |
상속(접근제어자) (0) | 2022.10.04 |
상속_(생성자, 오버라이딩) (0) | 2022.10.04 |
Mac_jdk 환경 변수 설정하기 (0) | 2022.10.02 |