OOP(객체지향프로그래밍)란?

Jiwon Hwang·2023년 5월 17일
0

OOP(객체지향프로그래밍)이란?

object-oriented programming의 약자이다.
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.


OOP 구성 요소

클래스(Class) - 일종의 빵틀이라고 생각할 수 있다. 반죽(객체)를 class 안에 넣으면 원하는 모양의 빵🥐이 나오게 된다.

객체(Object)😀 - 클래스의 인스턴스(실제로 메모리상에 할당된 것)이다. 객체는 자신 고유의 속성(attribute)을 가지며 클래스에서 정의한 행위(behavior)를 수행할 수 있다. 즉, 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합이다.

ex) const kitty = { name: "나비", family: "코리안 숏 헤어", age: 1, weight: 0.1 };

메서드(Method), 메시지(Message) - 클래스로부터 생성된 객체를 사용하는 방법으로서 객체에 명령을 내리는 메시지라 할 수 있다. 메서드는 한 객체의 서브루틴(subroutine) 형태로 객체의 속성을 조작하는 데 사용된다. 또 객체 간의 통신은 메시지✉를 통해 이루어진다.
클래스 기반 언어에서 클래스 내부에 정의되어 있다.(멤버 함수)

메서드 예제
아래의 자바 코드는 사각형의 넓이를 계산하는 "rectangle" 메서드를 정의한 것이다.

public class Main
{
		int rectangle(int h, int w)
        {
                return h*w;
        }
}

OOP 특징

객체지향 프로그래밍에 사용되는 객체지향 언어는 4가지의 특징을 가지고 있다.

  • 추상화 - 구현 세부 정보를 숨기는 일반 인터페이스를 지정하는 행위.
    즉, 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것이다.

우리가 자동차를 샀을 때, 자동차의 세부동작을 몰라도 핸들, 기어, 엑셀, 브레이크 만으로 자동차를 운행할 수 있다.

  • 캡슐화 - 데이터와 그 데이터를 사용하는 함수를 캡슐(class)안에 두어, 정보를 은닉합니다.

  • 상속성 - 객체지향의 정수로 상속성이 없다면 객체지향의 의미가 없어질 정도로 중요한 요소이다. 하나의 클래스가 가진 특징(데이터, 함수)을 그대로 다른 클래스에 물려줄때 사용된다.

미국인과 한국인은 동일한 Person class를 상속 받는다.

  • 다형성 - 같은 함수를 받아도 각자 다른 일을 하는 것을 의미한다.

미국인과 한국인은 동일한 Person class를 상속받지만, 같은 language메서드를 사용하여도 서로 다른 결과값(English, 한국어)을 출력한다.

profile
Web Publisher

0개의 댓글