객체지향이란 프로그래밍 방식 중에 하나이고
- 많은 객체(object)들이 모여서 상호 협력하면서 메세지를 주고 받으며 데이터를 처리하는 방식의 현실세계의 패러다임을 접목한 프로그래밍 방법
- 다형성을 통해 레고 블럭 조립하듯이 컴포넌트를 유연하고 변경이 용이하기 떄문에 대규모 소프트웨어 개발에 많이 사용된다
-다형성이란 하나의 메소드를 여러 타입에 쓸수있는것이다. 오버로딩을 통해서 구현한다(자바스크립트에는 없는 개념이라고 한다, 자바스크립트에 오버로딩이 없는 이유는 자바스크립트는 함수에 인자를 맘데로 넣을수있기떄문에)
객체지향의 주요 개념
1. 추상화 (반대는 구체화 인듯)
- 아이폰 -> 스마트폰 -> 통신장비 -> 전자기기 -> 물건
오른쪽으로 갈수록 추상화가 되는것이다. 공통으로 여기저기에 쓸수있다, 통신장비라는 개념은 여기저기 많이 같다 붙혀서 쓸수있지만 아이폰이라는 개념은 아이폰에만 쓸수있다.
추상화를 할 수록 개별적인 특징이 사라짐
개발을 할 떄 상위 요소( 추상화가 많이 된것을 먼저 만들고 ) 하위요소들에 상속을 통해서 상위요소에 대한것은 개발을 안할수있게 한다.
아이폰 객체가 상속받을 것은 [스마트폰,통신장비,전자기기,물건]이런식으로 상속을 받고 아이폰 고유의 기능이나 성질등만 개발을 하면된다. 그 위에것은 기존에 만들어놓은것을 그냥 쓰면된다.
2. 다형성
상위요소가 다양한 하위요소를 통합하여 사용하는 기술
'전사'가 '캐릭터'를 상속받아서 '캐릭터'에 있는 '공격'이라는 메소드를 사용하면 칼로 자르고
'궁수'가 '캐릭터'를 상속받아서 '캐릭터'에 있는 '공격'이라는 메소드를 사용하면 화살을 발사한다
다양한 타입을 하나의 메소드가 처리할수있는것
예) A라는 함수에 매개변수로 숫자,문자,등 다 넣을수있고 숫자를 넣으면 더해서주고 문자넣으면 아스키코드상에서 숫자 찾고 그거 더해서 주는 함수가 다형성 개념이다
3. 캡슐화
인캡슐레이션은 테이터, 그리고 테이터를 사용하는 함수를 캡슐 혹은 컨테이너 안에 넣는것을 말한다 캡슐은 클래스를 의미한다
쉽게 말해 클래스를 우리가 사용하는 방법이 캡슐화이다
클래스안에 객체(데이타) 있고 그 객체를 사용한 메소드(함수)가 있는 것, 데이터와 함수를 하나의 클래스(캡슐)안에 넣는것
'TIL,WIL(일간,주간 회고)' 카테고리의 다른 글
cannot find type definition file for 'morgan'. the file is in the program because:\n entry point for implicit type library 'morgan' (0) | 2023.04.17 |
---|---|
sourcetree(소스트리) 클론시 올바른 원본 경로 url이 아니라고 뜰 때 (0) | 2023.04.17 |
2022.01.14 TIL 에러 계속날때 참고 (0) | 2023.01.14 |
2023.01.12 TIL sequelize 마이그레이션과 모델 (0) | 2023.01.13 |
2023.01.12 TIL sequelize-cli 모델 생성할때 주의 (0) | 2023.01.12 |