encapsulation1. 묶기

캡슐화(=은닉화)
캡슐화는 멤버변수를 묶거나 숨기는 두가지 기능이 공존함 !
여기선 묶기를 위주로 설명!

각각의 클래스들을 알약 안의 약 알갱이라고 생각하쟈 약 알갱이들은 모두 감기를 없애는 목표와 행동을하는 아이들임

복습하면서 보니 클래스안의 메소드명이 모두 동일하네?? 이게 캡슐화 할 때 구분하기 쉽게 같은이름으로 통일을 한건지 아니면 캡슐화 할 땐 메소드이름이 동일해야 하는건지는 정확히 모르겟으나 .... 아무튼 동일한 이름의 메소드들을 한 클래스에 묶어서 캡슐화 함!!!


첫번째 클래스 안 = 첫번째 알갱이 얘를 복용하면 재채기가 멈춤

class Sneeze

Cappublic void take(){
System.out.println("재채기가 멈추다");
}

두번째 클래스 안 = 두번째 알갱이 얘를 복용하면 콧물이 멈춤

class Snivel

Cappublic void take() {
System.out.println("콧물이 멈추다");
}

세번재 클래스 안 = 세번째 알갱이 얘를 복용하면 기침이 멈춤
class SniffleCap
public void take() {
System.out.println("기침이 멈추다");
}

네번째 클래스 안 = 알갱이들을 복용 , 복용순서 중요함 재체기 ->콧물->기침
==== 캡슐화 전 (묶기전) =====
멤버변수
SneezeCap sneezeCap = new SneezeCap();
SnivelCap snivelCap = new SnivelCap();
SniffleCap sniffleCap = new SniffleCap();

멤버메소드
void take() {
sneezeCap.take();
snivelCap.take();
sniffleCap.take();
}

이거 순서도 기억해야하고 아주 번거로움

다섯번째 클래스 "Contack600"에 이놈들을 묶어서 사용할 것임
class Contack600
멤버변수
SneezeCap sneezeCap = new SneezeCap();
SnivelCap snivelCap = new SnivelCap();
SniffleCap sniffleCap = new SniffleCap();

멤버메소드
void take() {
sneezeCap.take();
snivelCap.take();
sniffleCap.take();
}

다시 네번째 클래스 안
============묶은 후===================
멤버변수
Contack600 contack600 = new Contack600();
멤버메소드
void take() {
contack600.take();
}





감기환자 객체화
ColdPatient patient = new ColdPatient();
감기약복용
patient.take();


이거 수업하면서 대체 뭔 의미가 있나 싶었는데
캡슐화가 묶는 기능보단 숨기는기능에서 더 사용의미가 있는것 같다는것을 작성하면서 깨달음
그래서 다음 포스팅은 캡슐화의 숨김기능에 대해 쓸 거임

'학원 > JAVA' 카테고리의 다른 글

9.30 13-4 This Keyword  (1) 2022.09.30
9.30 13-3 캡슐화(예/적금 ver.)  (0) 2022.09.30
9.30 13-1 MathClass  (0) 2022.09.30
9.29 12 -2 ETC CLASS (날짜관련 위주로)  (0) 2022.09.29
9.29 12 -1 정규표현식  (0) 2022.09.29

+ Recent posts