현실 세계는 사물이나 개념처럼 독립되고 구분되는 각각의 객체로 이루어져 있으며, 발생하는 모든 사건들은 객체간의 상호작용이다.
이 개념을 컴퓨터로 옮겨 놓아 만들어낸 것이 객체지향 언어이다.
객체(Object) : 독립적으로 각각 구분해서 인식할 수 있는 모든 것
ex) 키보드, 김치, 옆집 아저씨, 나, 미세먼지, 모래 한 알, 무형 문화제 ... 등 유/무형의 수많은 것들이 객체에 해당 된다고 볼 수 있음
지향 (Oriented): 어떠한 것을 목표로 함
객체 지향: 독립적으로 각각 구분해서 인식할 수 있도록 하는 것을 목표로 함
언어(컴퓨터에서의 언어: Language, 코드): 코딩 방식
객체 지향 언어 = 독립적으로 각각 구분해서 인식할 수 있는 것을 목표로 하는 코딩 방식
캡슐화 (Encapsulation)
보호 역할 : 외부로부터의 접근을 막는다 (정보 은닉)
상속 (Inheritance)
부모 → 자식에게 물려주는 것 (속성, 기능) + 자식이 이미 가지고 있는 것
다형성 (Polymorphism)
다양한 형태를 지니는 성질
추상화 (Abstraction)
구체적의 반대 개념으로, 일반적이고 추상적인 특성은 추출하고 구체적인, 불필요한 특성은 제거하는 것
=> 추상화에 대한 이해를 돕기 위한 설명으로 피카소의 작품을 통해 설명함
자신의 속성(값, data)과 기능(동작,행동)이 다른 것들 과 구분되어 식별 가능한 것
클래스에 정의된 내용대로 new
연산자를 통해 메모리 영역에 생성된 것
new
연산자를 통해 메모리 영역에 생성된 배열도 객체임