"객체지향"으로 넘어오면 "질문"이 바뀐다
이거 짝수야
3,6,9게임의 알고리즘 작성해줘
배열에 NUM가 있어?
▼▼
자동차 코딩해줘
학생부 프로그램을 제작하고 싶어 학생 데이터 만들어줘
스마트폰 코딩해줘
객체지향 프로그램(OOP)의 특성
4가지 특성
| 추상화 | 캡슐화 | 상속 | 다형성 |
✅ 1. 추상(설계가 중요)
abstract class
ex) "자동차" 코딩해줘
스포츠카: 속도,브레이크()
버스: 탑승인원, 요금정산()
차: 주유상태출력,벨트,네비게이션()
> 어떻게 정의하냐에 따라 서로 다른 OUTPUT이 생성, 그래서 설계가 중요!
✅ 2. 캡슐화(모듈화,컴포넌트화)
내부 구성성분을 몰라도, 효과를 알면 우리는 그냥 먹는다.
내부 로직코드를 정확히 몰라도 INPUT, OUTPUT 기능 활용하는 상황 등을 알면 그냥 쓴다.
> 기존의 코드들을 분석하여 '모듈화'된 코드들을 가져다가 쓸 수 있다.
*오류 파급 줄어듬 / 개발시간 단축 / 개발비용 절감 / 이익 증가 / 유지보수 용의
✅ 3. 상속(설계단계에서 고민)
extands
부모(상위) 클래스에서 미리 공통 부분을 코딩해둔 다음,
자식(하위) 클래스에서 상속받아 세부적인 부분을 구현한다.
*오류 파급 줄어듬 / 개발시간 단축 / 개발비용 절감 / 이익 증가 / 유지보수 용의
캡슐화와의 차이점
- 캡슐화: 포함관계 X
- 상속: 포함관계 O >> 설계단계에서 집중적으로 고민하는 부분
✅ 4. 다형성(주어)
*** 함수에게 주어(주체)가 생겼기" 때문에 발생하는 현상 ***
@오버라이딩
함수: 일반적인 프로그래밍언어에서 흔히 만들 수 있음 > 주어 X
메서드: 객체지향언어에서만 작성가능 > 주어 O
함수를 실행시키는 주어 == 객체
객체가 실행하는 함수 == 메서드
> 같은 함수를 실행시켜도, 주어에 따라 다른 기능이 실행되는 현상
강아지.울음소리(); > 멍멍
고양이.울음소리(); > 야옹
우리정글.공격(); > 100
상대정글.공격(); > 200
'Language > JAVA' 카테고리의 다른 글
| [JAVA 기초 이론] 인터페이스: interface (0) | 2024.02.20 |
|---|---|
| [JAVA이론] StringBuffer / StringBuilder (0) | 2024.02.19 |
| [JAVA 기초 이론] MVC패턴 (0) | 2023.05.24 |
| [JAVA 기초 이론] 집합: Set (0) | 2023.05.22 |
| [JAVA 기초 이론] 스레드 Thread (0) | 2023.05.22 |