Code States | OOP 기초(1) - 클래스와 객체

yeonk·2022년 5월 23일
1
post-thumbnail

1. 객체지향 프로그래밍(OOP, Object Oriented Programming)


실제 세계는 객체로 구성되어 있고, 객체들의 상호작용을 통해 모든 사건들이 발생한다.
객체의 속성(state), 기능(behavior) 을 분석하여 프로그래밍의 변수와 함수로 정의하는 행위를 통해 실제 세계를 반영하고자 함

  • 객체지향

    • 실제 세계를 모델링하여 소프트웨어를 개발하는 방법

    • 프로그램 구현에 필요한 객체 파악 및 역할을 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것

  • 장점: 캡슐화, 상속, 다형성과 같은 특징 → 프로그램 개발 및 유지보수 비용과 시간을 감소, 데이터 관리에 용이

  • 단점: 코딩의 난이도가 높으며, 객체에 대한 정확한 이해가 요구됨 → 설계 단계에서 많은 시간 소요






2. 클래스(Class)


객체 생성을 위한 틀 또는 설계도

  • 클래스는 객체가 아니다.

  • 클래스를 통해 생성된 객체를 인스턴스라고 하며, 해당 과정을 인스턴스화(instantiate)라고 한다.

  • 구성요소

    • 필드(field): 변수 → 클래스의 속성

    • 메서드(method): 함수 → 클래스의 기능

    • 생성자(constructor) → 객체 생성

    • 이너 클래스(inner class) → 클래스 내부에 위치하는 클래스

    • 생성자를 제외한 3요소를 멤버(member)라고 함






클래스 정의

  • 클래스명: 첫 글자를 대문자로 시작하는 것이 관례
class ClassName {
	// 코드
}






3. 객체(Object)


클래스(class)로 인해 생겨난 인스턴스(instance)

  • 실세계에 존재하거나 생각할 수 있는 것

  • 엄밀하게 따진다면 객체는 인스턴스를 포함하여 더 넓은 의미를 가진다.






객체 생성

  • new 키워드를 통해 객체 생성

  • 생성된 객체의 필드값과 메서드는 저장 영역이 다르다(클래스 영역, 스택 영역, 힙 메모리 영역)

// 객체 생성
클래스명 참조변수명 = new 생성자();

// 멤버 접근
참조변수명.필드명
참조변수명.메소드명






4. 참고 자료


Object-oriented programming

객체지향

The Forgotten History of OOP

0개의 댓글