객체지향
실세계 모델링: 현실 세계는 객체(사물, 개념)들로 구성되어 있으며, 객체들 간의 상호작용(메시지 교환)으로 사건이 발생한다.
컴퓨터 내 구현: 실제 객체의 속성(데이터)과 기능(행위)을 변수와 함수로 추상화하여 소프트웨어적으로 재현한다.
객체지향언어
기존 프로그래밍 언어에 객체지향적 특성을 추가한 언어(JAVA, C++, Python 등)
주요특징
- 코드 재사용성: 상속, 조합 등을 통해 기존 코드를 반복 사용 가능
- 유지보수성: 모듈화된 코드 구조로 관리가 쉬움
- 신뢰성/확장성: 캡슐화, 다형성 등으로 오류 감소 및 기능 확장 용이
클래스와 객체
클래스와 개체
- 클래스(Class): 객체를 생성하기 위한 설계도(데이터와 메서드의 집합)
- 객체(Object, 인스턴스): 클래스로부터 생성된 실체. 실제 메모리에 할당되어 동작
객체와 인스턴스
- 객체: 실존하는 대상(개념/사물/프로그램 내 실체 모두 포함)
- 인스턴스: 특정 클래스 기반으로 만들어진 객체만을 지칭
객체의 구성요소 - 속성과 기능
- 속성: 멤버 변수, 특성, 필드, 상태
- 기능: 메서드, 함수, 행위
인스턴스 생성과 사용