SIMPOLOR
단순하고 색있게
객체지향 프로그래밍(OOP) 이해 및 주요 개념
단순색
·
2024년 06월 21일
Java
## 객체지향 프로그래밍 (Object-Oriented Programming, OOP) 이란? 객체지향 프로그래밍(OOP)은 소프트웨어 설계 및 프로그래밍 패러다임 중 하나로, 현실 세계의 개념을 객체라는 단위로 추상화하여 모델링하는 방법입니다. OOP는 프로그램을 객체들의 집합으로 보고, 이 객체들이 상호작용하면서 동작하는 구조를 가집니다. ## 주요개념 ### 객체(Object) - 데이터와 메서드를 포함하는 기본 단위로 현실 세계의 사물이나 개념을 추상화한 것입니다. - 객체는 상태(속성)와 행동(메서드)을 가집니다. - 클래스를 바탕으로 생성된 실제 인스턴스입니다. ### 클래스(Class) - 객체를 생성하기 위한 설계도로, 객체의 구조와 동작을 정의합니다. - 클래스는 객체의 속성과 메서드를 정의합니다. ### 상속(Inheritance) - 기존 클래스(부모 클래스 또는 슈퍼 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스 또는 서브 클래스)가 물려받아 재사용하고 확장할 수 있는 기능입니다. ### 다형성(Polymorphism) - 동일한 인터페이스나 부모 클래스의 메서드를 다양한 방식으로 구현할 수 있는 능력입니다. - 메서드 오버로딩(Overloading)과 메서드 오버라이딩(Overriding)으로 구현됩니다. ### 캡슐화(Encapsulation) - 객체의 상태(속성)을 보호하고, 객체 내부의 동작(메서드)을 감추는 것을 의미합니다. - 객체 내부 구현이 외부에 노출되지 않도록 데이터의 무결성을 유지합니다. ### 추상화(Abstraction) - 복잡한 시스템을 단순화하여 중요 부분만 모델링하는 것입니다. - 불필요한 세부 사항을 숨기고 중요한 부분에 집중할 수 있습니다. ## 객체 생성 예제 ``` // 클래스 정의 public class Car { // 속성 (필드) private String brand; private int speed; // 생성자 public Car(String brand) { this.brand = brand; this.speed = 0; } // 메서드 public void accelerate(int increment) { speed += increment; } public void brake(int decrement) { speed -= decrement; } public int getSpeed() { return speed; } public String getBrand() { return brand; } } // 객체 생성 및 사용 public class Main { public static void main(String[] args) { Car myCar = new Car("Toyota"); myCar.accelerate(50); System.out.println("Speed: " + myCar.getSpeed()); myCar.brake(20); System.out.println("Speed: " + myCar.getSpeed()); } } ```
연관 포스트
BigDecimal 클래스
다형성(Polymorphism)
캡슐화(Encapsulation)
추상화(Abstraction)
상속(Inheritance)