반응형
청춘고양이
배움을 기록하는 곳
청춘고양이
전체 방문자
오늘
어제
  • Hello World (119)
    • JQuery (5)
    • In my opinion (4)
    • HTML&CSS (8)
    • JS (9)
    • JAVA (21)
    • Spring Boot (21)
    • Node.js (1)
    • Linux (7)
    • Git (2)
    • Kotlin (4)
    • Fluttor (4)
    • 정보처리기사 (19)
    • AWS (1)
    • Oracle (8)
    • MySQL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바db연동
  • spring 기본설정
  • css
  • ScrollEffectJs
  • 중복 제거 로또
  • js 패스워드 변경
  • js
  • 자바
  • 초보개발
  • 제이쿼리 버튼클릭시 색 변경
  • 제이쿼리
  • 제이쿼리 비밀번호
  • 가위바위보js
  • js 로또 번호
  • 객체 안의 함수
  • 청춘고양이
  • 스크롤js
  • 쉬프트 연산
  • js 비밀번호
  • 제이쿼리 패스워드 변경

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청춘고양이

배움을 기록하는 곳

JAVA

캡슐화

2022. 11. 8. 00:36
반응형
package Ch09;

//캡슐화
//특정한 목적달성을 위해 필요한 여러 과정을 하나로 묶는작업
//ex)
//자동차 엔진 동작과정
//흡입 -> 압축 -> 폭발 -> 배기 과정을 거치게 되는데 
//이러한 동작과정을 묶어 하나의 캡슐로 처리할수 있다

//캡슐화는 정보은닉을 수반한다
//엔진의 동작과정중 흡입/압축 과정이 외부에 노출되어 순서가 변경된다거나 한다면
//자동차 자체에 큰 문제를 야기할 수있다
//캡슐화의 일부분이나 전부는 정보은닉(private)되어 묶여진다

//잘못된 캡슐화는 프로그램 전체에 영향을 주기 때문에
//작업 공정을 정확히 이해한 상태에서 처리한다


class C03Engine{
	//흡입
	private void Induction() {System.out.println("흡입!");}
	//압축
	private void Compress() {System.out.println("압축!");}
	//폭발
	private void Power() {System.out.println("폭발!");}
	//배기
	private void Exhaust() {System.out.println("배기!");}
	public void EngineStart() {
		Induction();//1
		Compress();//2
		Power();//3
		Exhaust();//4
	}
}
class C03Car{
	private C03Engine engine=new C03Engine();
	
	public void Carstart() {
		System.out.println("자동차 전원을 켭니다!");
		engine.EngineStart();
	}
}
public class C03CapsuleMain {
	public static void main(String[] args) {
		C03Car hong = new C03Car();
		hong.Carstart();
	}

}
package Ch09;

class Ramen{
	//1물을끓인다				- step1():void
	//2스프와 분말가루를 넣는다	- step2():void
	//3면을넣는다				- step3():void
	//4파,계란~				- step4():void
	private void step1() {System.out.println("1 물을끓인다");}
	private void step2() {System.out.println("2 스프와 분말가루를 넣는다");}
	private void step3() {System.out.println("3 면을넣는다");}
	private void step4() {System.out.println("4 파,계란~");}
	//캡슐화함수				+ recp():void
	public void recp() {
		step1();step2();step3();step4();
	}
}
class Tokbokki{
	//1물을끓인다				- step1():void
	//2고추장을푼다				- step2():void
	//3떡오뎅넣는다				- step3():void
	//4졸인다					- step4():void
	private void step1() {System.out.println("1물을끓인다");}
	private void step2() {System.out.println("2고추장을푼다");}
	private void step3() {System.out.println("3떡오뎅넣는다");}
	private void step4() {System.out.println("4졸인다");}
	//캡슐화함수				+ recp():void
	public void recp() {
		step1();step2();step3();step4();
	}
}
class Chef{
	//Ramen과 의존관계 형성
	//Tokbokki와 의존관계 형성
	private Ramen ramen = new Ramen();
	private Tokbokki tokbokki = new Tokbokki();

	//+CookRamen():void ->Ramen조리과정이 출력!
	public void CookRamen() {
		System.out.println("-----라면 요리를 시작합니다-----");
		ramen.recp();
		System.out.println("-----라면 요리가 끝났습니다-----");
	}
	//+CookTokbokki:void -> Tokbokki조리과정이 출력!	
	public void CookTokbokki() {
		System.out.println("-----떡볶이 요리를 시작합니다-----");
		tokbokki.recp();
		System.out.println("-----떡볶이 요리가 끝났습니다-----");
	}
}
public class C04CapsuleMain {
	public static void main(String[] args) {
		Chef hong = new Chef();
		hong.CookRamen();
		hong.CookTokbokki();

	}

}
반응형
저작자표시 (새창열림)

'JAVA' 카테고리의 다른 글

DTO, VO  (0) 2024.01.12
This  (0) 2022.11.08
접근제한자  (0) 2022.11.08
객체  (0) 2022.06.06
WHILE  (0) 2022.06.06
    'JAVA' 카테고리의 다른 글
    • DTO, VO
    • This
    • 접근제한자
    • 객체
    청춘고양이
    청춘고양이
    신입개발자

    티스토리툴바