JAVA/객체지향2023. 10. 31. 23:55객체지향 프로그래밍 실습(3)

음식점에서 음식 주문하는 과정 구현 요구사항 * 1. 도메인을 구성하는 객체에는 어떤 것들이 있는지 고민 * ㄴ 손님, 메뉴판(0) , 돈까스/냉면(0), 요리사(0) ,요리(0) * 2. 객체들 간의 관계를 고민 * ㄴ 손님 -- 메뉴판 * ㄴ 손님 -- 요리사 * ㄴ 요리사 -- 요리 * 3. 동적인 객체를 정적인 타입으로 추상화해서 도메인 모델링 하기 * ㄴ 손님 -- 손님 타입 * ㄴ 돈까스/냉면/만두 -- 요리 타입 * ㄴ 메뉴판 -- 메뉴판 타입 * ㄴ 메뉴 -- 메뉴 타입 * 4. 협력을 설계 * 5. 객체들을 포괄하는 타입에 적절한 책임을 할당 * 6. 구현하기 package org.example; import org.junit.jupiter.api.DisplayName; import or..

JAVA/객체지향2023. 10. 30. 21:03객체지향 프로그래밍(2)

객체지향 프로그램밍 실습 * 요구사항 • 평균학점 계산 방법 = (학점수×교과목 평점)의 합계/수강신청 총학점 수 • MVC패턴(Model-View-Controller) 기반으로 구현한다. • 일급 컬렉션 사용 package org.example; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; /** * 요구사항 • 평균학점 계산 방법 = (학점수×교과목 평점)의 합계/수강신청 총학점 수 • MVC패턴(Model-View-Controller) 기반으로 구현한다. • 일급 ..

JAVA/객체지향2023. 10. 29. 02:29객체지향 프로그래밍(1)

사칙연산 계산기 구현 package org.example; import org.example.calculate.PositiveNumber; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertT..

JAVA/객체지향2023. 10. 27. 14:37객체지향 개념정리

객체지향이란? 먼저 객체지향에 정답이 있다고 생각하지 않는다 그러하여 나의 견해에 대해 설명하겠다. 객체 지향 4가지 특성 1 - 추상화 (Abstraction) : 불필요한 부분을 제거함으로써 필요한 핵심만 나타낸 것을 추상화라고 할 수 있다. 흔히 일반화, 단순화라고도 하고, 이를 사용하는 목적은 복잡한 특징을 제거하는 것이다. 2 - 다형성 (Polymorphism) : 말 그대로 다양한 형태를 가지는 것을 다향성이라고 결론을 내 견해를 가지고있다. 쉽게 말해서 하나의 타입으로 여러 종류의 객체를 참조하는 것. 3 - 캡슐화 (Encapsulation) : 객체 내부의 세부사항을 외부로부터 감추는 것을 캡슐화라고 견해를 가지고 있다. 목적으로는 인터페이스만 공개해서 변경하기 쉬운 코드를 만들기 위함..

image