
: OOP (Object-Oriented Programming)
💡 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍
❗ 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아닌, 프로그램을 수많은 객체(Object)라는 기본 단위로 나누고 이들의 상호작용을 서술하는 방식을 의미
❗ Javascript는 프로토타입 기반의 객체지향 프로그래밍을 지원
❗ 장점 : 코드의 재사용성, 유지보수성, 가독성, 대규모 프로젝트의 관리 측면에서 good!
💡 클래스(
Class)를 기반으로 그대로 생성된 실체, 모든 instance를 대표하는 포괄적인 개념
(여러개의 property와 method를 가지고 현실의 사물을 흉내내는 존재)
❗객체는 다른 객체나 외부로부터 숨겨야 할 데이터를 내부에 저장하고, 메서드(method)를 통해 데이터에 접근하거나 변경함 (캡슐화 과정)
❗ Attribute (속성) : 객체의 상태를 나타내고, 객체의 특정 값을 저장
❗ Method (메서드) : 객체가 수행하는 동작을 나타내며, 객체의 속성을 변경하거나 객체의 상태에 따른 다른 동작을 수행
💡 클래스(
Class)를 기반으로 소프트웨어에 구현된 구체적인 실체,
객체가 메모리에 할당되어 실제 사용될 때 instance라고 정의
(여러개의 property와 method를 가지고 현실의 사물을 흉내내는 존재)
❗객체는 다른 객체나 외부로부터 숨겨야 할 데이터를 내부에 저장하고, 메서드(method)를 통해 데이터에 접근하거나 변경함 (캡슐화 과정)
❗ Attribute (속성) : 객체의 상태를 나타내고, 객체의 특정 값을 저장
❗ Method (메서드) : 객체가 수행하는 동작을 나타내며, 객체의 속성을 변경하거나 객체의 상태에 따른 다른 동작을 수행
💡 객체를 생성하기 위한 틀 또는 설계도
❗ 클래스는 객체를 만들기 위한 필드(field)와 메서드(method)를 정의하고, 객체를 생성하기 위한 속성과 동작을 결정
Instantiation)라고 합니다.Constructor)라고 합니다./* 클래스 */
public class Animal {
...
}
/* 객체와 인스턴스 */
public class Main {
public static void main(String[] args) {
Animal cat, dog; // '객체'
// 인스턴스화
cat = new Animal(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
dog = new Animal(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
}
}