OOP: 클래스와 객체

hwisaac·2023년 2월 25일
0

oop

목록 보기
1/5

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임 중 하나로, 현실 세계의 사물이나 개념을 객체(Object)로 보고 그 객체들간의 상호작용으로 프로그래밍하는 방법입니다.

객체는 속성(attribute)과 동작(method)으로 구성되며, 클래스(class)를 사용하여 객체를 정의합니다. 클래스는 객체를 생성하기 위한 설계도 역할을 하며, 객체를 생성하는 과정을 인스턴스화(instantiation)라고 합니다.

객체지향 프로그래밍의 장점으로는 코드의 재사용성이 높아지며, 유지보수성이 좋아지며, 코드의 가독성이 좋아지며, 대규모 프로젝트의 관리가 용이해집니다.

객체지향 프로그래밍에서는 다음과 같은 개념들이 중요합니다.

  • 클래스(Class) : 객체를 만들기 위한 설계도
  • 객체(Object) : 클래스를 인스턴스화하여 만들어진 구체적인 사물 또는 개념
  • 속성(Attribute) : 객체의 특징을 표현하는 변수
  • 동작(Method) : 객체가 수행하는 행위 또는 기능을 표현하는 - 함수
  • 캡슐화(Encapsulation) : 객체의 속성과 동작을 하나의 단위로 묶고, 외부에서의 접근을 제한하는 것
  • 상속(Inheritance) : 이미 정의된 클래스를 기반으로 새로운 클래스를 만들어서 기존 클래스의 속성과 동작을 물려받는 것
  • 다형성(Polymorphism) : 같은 이름의 메서드를 사용하지만, 다른 기능을 하는 것을 의미합니다.

클래스

객체지향 프로그래밍에서 클래스(Class)는 객체를 생성하기 위한 틀 또는 설계도입니다.

클래스는 객체를 만들기 위한 필드(field)와 메서드(method)를 정의하며, 객체를 생성하기 위한 속성과 동작을 결정합니다.

클래스는 객체를 생성하기 위한 청사진으로, 객체의 속성과 동작을 정의하고, 객체를 생성할 때 이 청사진을 사용하여 객체를 초기화합니다. 클래스는 객체를 여러 개 만들 수 있으며, 클래스의 인스턴스(instance)는 객체를 구체화한 것입니다.

객체지향 프로그래밍에서 클래스를 사용하여 객체를 생성하려면 다음과 같은 순서를 따릅니다.

  1. 클래스 정의 : 객체를 생성하기 위한 클래스를 정의합니다.
  2. 인스턴스 생성 : 클래스를 사용하여 객체를 생성합니다. 이 과정을 인스턴스화(Instantiation)라고 합니다.
  3. 인스턴스 초기화 : 객체를 초기화합니다. 이 과정을 생성자(Constructor)라고 합니다.
  4. 객체 사용 : 객체를 사용하여 속성과 동작을 수행합니다.

예를 들어, 다음은 클래스를 사용하여 객체를 생성하는 예시입니다.

class Person {
  private name: string;
  private age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public sayHello(): void {
    console.log(`안녕하세요 저의 이름은 ${this.name}이고 저는  ${this.age}살 입니다.`);
  }
}

const person1 = new Person("짱구", 25);
person1.sayHello();

위 코드에서 Person 클래스는 nameage 속성을 가지며, sayHello 메서드를 정의합니다.

constructor 메서드는 클래스의 생성자로, 객체가 생성될 때 호출되어 객체의 속성을 초기화합니다.

private 접근 제어자는 해당 속성이 클래스 내에서만 접근 가능하도록 합니다. public 접근 제어자는 해당 메서드가 클래스 외부에서도 접근 가능하도록 합니다.

person1Person 클래스의 인스턴스로, nameage 속성이 초기화됩니다.

sayHello 메서드는 person1 객체의 동작을 정의하며, 객체를 사용하여 메서드를 호출할 수 있습니다.

객체

객체지향 프로그래밍에서 객체(Object)란 클래스(Class)를 기반으로 생성된 구체적인 사물 또는 개념을 의미합니다.

객체는 데이터와 그 데이터를 처리하는 동작을 함께 가지며, 프로그램에서 데이터와 동작이 하나의 단위로 묶여서 처리됩니다.

객체는 다른 객체나 외부로부터 숨겨야 할 데이터를 내부에 저장하고, 메서드(method)를 통해 데이터에 접근하거나 변경할 수 있습니다. 이를 캡슐화(Encapsulation)라고 합니다.

객체(Object)의 속성(Attribute)은 객체의 상태를 나타내며, 객체의 특정 값을 저장합니다. 객체의 메서드(Method)는 객체가 수행하는 동작을 나타내며, 객체의 속성을 변경하거나, 객체의 상태에 따른 다른 동작을 수행합니다.

객체는 다른 객체와 협력하여 작업을 수행하며, 이를 위해 메시지를 주고받습니다. 이를 객체의 상호작용(Collaboration)이라고 합니다. 객체는 다른 객체의 메서드를 호출하거나, 이벤트를 발생시켜 다른 객체에게 통지할 수 있습니다.

객체는 다른 객체로부터 상속(Inheritance)을 받아 기존 클래스의 속성과 동작을 물려받을 수 있으며, 이를 기반으로 새로운 클래스를 작성할 수 있습니다.

객체는 다형성(Polymorphism)을 지원합니다. 다형성은 같은 이름의 메서드를 사용하지만, 다른 기능을 하는 것을 의미합니다. 이를 통해 객체의 동작을 일관되게 처리할 수 있습니다.

0개의 댓글