[CS] 객체지향 프로그래밍(OPP)?

웨다·2022년 11월 28일
0

CS

목록 보기
1/1

🤔 객체지향 프로그래밍?

객체지향 프로그래밍(OOP, Object-Oriented Programming)은 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식을 말한다.

// 자바스크립트

const ret = [1, 2, 3, 4, 5, 11, 12]
class List {
	constuctor(list) {
    	this.list = list
        this.mx = list.reduce((max, num) => num > max ? num : max, 0)
    }
    getMax() {
		return this.mx    
	}
}
const a = new List(ret)
console.log(a.getMax()) // 12

코드 설명: List라는 클래스를 만들고 a라는 객체를 만들 때 최댓값을 추출해내는 메서드를 만든 예제이다.

📌 객체지향 프로그래밍 특징?

  1. 추상화(abstraction)
    추상화란 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 요약하여 표현하는 것을 의미한다. 예를 들어 '진경'이라는 사람은 '여자, 키160cm, intj, 가족4명, 학생, 착함'이라는 특징을 가지고 있다. 이러한 특징 중 '여자, 160cm'이라는 특징만 뽑아내 표현하는 것을 의미한다.

  2. 캡슐화(encapsulation)
    캡슐화는 객체의 속성과 메서드를 하나로 묶어 외부로부터 숨기는 것을 말한다.

  3. 상속성(inheritance)
    상속성은 상위 클래스의 특성을 하위 클래스가 재사용하거나 추가, 확장하는 것을 말한다. 이에 코드의 재사용 측면, 계층적인 관계 생성, 유지 보수성 측면에서 중요하다.

  4. 다형성(polymorphism)
    다형성은 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것을 말한다. 대표적으로 오버로딩, 오버라이딩이 있다.

📌 객체지향 프로그래밍 장점?

  • 코드를 재활용할 수 있다
  • 깔끔한 코드를 작성할 수 있다
  • 유지보수가 유용하다

📌 객체지향 프로그래밍 단점?

  • 설계에 많은 시간이 소모된다
  • 처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느리다
  • 코드가 복잡해질 수 있다
profile
인문학도 IT PM✨

0개의 댓글