Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- wsl
- 변수
- 머클루트
- Sequelize
- wget
- 설치
- 일반유저
- Docker
- 우분투
- MariaDB
- 자바스크립트
- 머클트리
- centos
- 전역설치
- 블록체인
- node.js 교과서 따라하기
- 벨로포터
- 솔리디티
- 리눅스
- 노드
- 이더리움
- 쉘스크립트
- 리액트
- 시퀄라이즈
- 깃허브
- 리액트를 다루는 기술
- npm
- 라우터
- 환경변수
- immer
Archives
- Today
- Total
코드코코
[OOP] Object-Oriented-Programming - 객체지향 프로그래밍 본문
OOP(Object Oriented Programming, 객체지향 프로그래밍)
- 모든 데이터를 현실에 빗대어 객체로 다루는 프로그래밍 기법.
객체지향 언어의 4가지 특징
1 ) 캡슐화 (Encapsulation) : 데이터와 함수를 하나로 묶는다.
- 데이터의 세부 내용이 객체 은닉된다. 즉, 데이터 변경으로 인한 에러가 줄어들고, 객체들간에 데이터를 자세히 알 필요가 없으므로 코드가 단순해진다.
- 객체와 함수의 재사용이 쉽다.
- 정보은닉 (Information Hiding) : private으로 선언한 데이터는 자기 자신을 통해서만(setter, getter) 접근 가능하다.
- 각 객체간의 수정이 다른 객체에 미치는 영향을 최소화 한다.
- 외부 객체의 직접 접근을 막아 프로젝트 확장 시 오류를 최소화 한다.
2 ) 추상화 (Abstraction) : 불필요한 부분은 생략하고 중요한 것에만 초점을 맞춰 모델로 만든다.
- 복잡한 모델을 중요한 것 만 추려 추상화 함으로써 시스템 구조를 시각적으로 표현할 수 있다.
- 완전한 시스템이 구축되지 않더라도 개략적으로 모델을 만들어 테스트 하고 살을 붙여나갈 수 있다.
3 ) 상속성 (Inheritance) : 부모클래스에 정의된 모든 것을 자식 클래스가 물려받는다.
- 재정의 할 필요가 없어 코드 작성이 간결해진다.
- 상속으로 인한 최소한의 규칙을 통해 프로젝트의 확장 시 오류를 최소화 한다.
- 자식클래스에서 새로운 함수를 추가하거나 부모 클래스의 함수를 재정의(Overriding)해 사용할 수 있다.
- 클래스의 재사용이 쉽다.
4 ) 다형성 (Polymorphism) : 호출하는 객체에 따라 다른 동작을 한다.
- 하나의 클래스에서 같은 이름의 함수를 여러 개 가질 수 있다(Overloading). 호출하는 객체가 어떤 인풋 파라미터를 사용해 호출하냐에 따라 각자 다른 함수가 호출되게 한다. 즉, 비슷한 기능을 하는 다른 함수를 만들 때 불필요하게 너무 많은 함수명을 만들어 내 가독성이 떨어지는 문제를 해결할 수 있다.
참조 : https://greendreamtrre.tistory.com/601 , https://nooblette.tistory.com/m/244
'이것저것' 카테고리의 다른 글
[Typescript] class (0) | 2022.06.20 |
---|---|
[SASS] Sass 7-1 Architecture (0) | 2022.06.18 |
프로토콜이란? (0) | 2022.05.16 |
MySQL VS mongoDB (0) | 2022.05.05 |