기억이 휘발되기 전에
제일 최근에 공부한 내용부터 업로드해야겠다.
OOP(Object-oriented programming)란?
객체 지향 프로그래밍 (OPP)는 Java 및 C++을 비롯한 많은 프로그래밍 언어의 기본이 되는 프로그래밍 패러다임.
객체 지향 프로그래밍은 여러개의 독립된 단위 “객체”들의 모임으로 컴퓨터 프로그램을 파악한다 ⇒ 객체 지향 프로그래밍은 객체들의 모임이다.
객체 지향 프로그래밍이 나오기 이전
: 명령어의 목록을 나열(절차지향) 하는 기능 구현을 목적으로 작성했음
⇒ 코드를 길게 작성하다보면 알아보기 힘든 복잡한 코드 생성
⇒ 하나의 문제 해결을 위한 독립된 단위인 객체로 만듬
→ 알아보기 쉽고, 재사용성 높아졌음.
왼쪽 사진 예시
car 에 대한것들
animal에 대한것들 모아두었음
OPP 특징
1. 자료 추상화 (Abstraction)
: 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는것.
⇒ 그 객체 안에 자세한 내용을 몰라도 중요 정보를 이용해서 해당 객체를 사용할 수 있게 됨.
ex. 커피머신을 이용할 줄 알면, 커피머신이 어떻게 작동하는지 몰라도 커피를 마실 수 있다.
2. 상속 (Inheritance)
상속은 새로은 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능.
- 상속을 받는 새로운 클래스 = 부클래스, 파생클래스, 자식클래스
- 상속하는 기존의 클래스 = 기반클래스, 상위클래스, 부모클래스
(상속을 통해 기존의 클래스를 상속 받은) 하위 클래스를 이용해 프로그램의 요구에 맞추어 클래스 수정 가능, 클래스 간의 종속 관계를 형성함으로써 개체를 조직화 할 수 있음.
애니멀 클래스 ⇒ 멍멍이클래스, 고양이클래스
3. 다형성 (Polymorphism)
: Poly(많은) + morph(형태) = 다양한 형태를 가질 수 있다.
- 다형성 개념이란 어떤 한 요소에 여러 개념을 넣어놓는 것.도형이라는 클래스에 getArea(){return width * this.height}이 있다면 삼각형 클래스에서는 이 메소드를 다른 방식으로 구할것이며, 사각형 클래스에서도 이 메소드에서 다른 방식으로 Area를 구할것.
- ex. “도형” 이라는 부모 클래스에 삼각형, 사각형, 원 클래스가 있음
⇒ 같은 메소드라도 각 인스턴스에 따라 다양한 형태를 가질 수 있는것을 다형성이라고 함.
- 즉, 객체의 변수나 메소드가 상황에 따라 다른 의미로 해석될 수 있는것을 말함.
- 오버라이딩(Overriding)을 사용하여 자식 클래스의 메서드가 부모 클래스의 메서드와 다르게 동작하거나 변수가 다른 값으로 지정될 수 있다.
4. 캡슐화 (encapsulation)
: 클래스 안에 관련 메서드, 변수 등을 하나로 묶어준다.
⇒ 바깥에서의 접근 을 막아 보안이 강화되고, 잘 관리되는 코드를 제공한다.
class { variables, Methods }
'☁️ 구름 X kakao DeepDive > ☁️ HTML CSS JS' 카테고리의 다른 글
[JavaScript] 비동기요청에서 Callbacks, Promise 그리고 Async/Await (0) | 2025.01.09 |
---|---|
[JavaScript] Prototype 그리고 ES6 Classes, Sub Class(Inheritance), super()란? (0) | 2025.01.09 |
[JavaScript] 조건부 삼항 연산자 (0) | 2025.01.09 |
[JavaScript] this 참조 바꾸기 - bind, call, apply (2) | 2025.01.09 |
[JavaScript] 자바스크립트 this 키워드 (메소드, 함수, 생성자함수, 화살표함수, Lexical this) (1) | 2024.12.22 |