객체지향의 4가지 특징

객체지향의 4가지 특징

면접용 답변

객체지향의 4가지 특징에는 "캡슐화, 상속, 다형성, 추상화"가 있습니다.

캡슐화는 데이터와 메서드를 하나의 객체로 묶어 외부에서 직접 접근하지 못하도록 보호하는 개념입니다. 이를 통해 데이터의 무결성을 유지하고 객체 간의 상호작용을 명확히 정의할 수 있습니다.

상속은 기존 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소를 의미합니다. 이를 통해 코드의 재사용성을 높이고, 계층 구조를 형성하여 공통된 기능을 공유할 수 있습니다.

다형성은 같은 인터페이스나 부모 클래스를 기반으로 여러 가지 형태로 동작할 수 있는 성질을 의미합니다. 오버로딩과 오버라이딩으로 구현됩니다.

추상화는 객체의 핵심적인 특징만을 노출하고 불필요한 내부 구현은 숨기는 개념입니다. 추상클래스와 인터페이스를 사용하여 구현합니다.

개념설명

캡슐화

  • 데이터와 메서드를 하나의 단위(객체)로 묶고, 외부에서 직접 접근하지 못하도록 보호하는 기법

  • private 접근 제어자를 사용해 데이터를 보호하고, gettersetter를 제공해 접근을 제어

  • 목적: 보안성 강화, 코드 유지보수 용이, 데이터 무결성 유지

class BankAccount {
    private double balance;  // 외부에서 직접 접근 불가능 (정보 은닉)

    // 생성자
    public BankAccount(double balance) {
        this.balance = balance;
    }

    // balance 값을 안전하게 변경하는 setter
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    // balance 값을 안전하게 조회하는 getter
    public double getBalance() {
        return balance;
    }
}

상속

  • 부모 클래스의 속성과 메서드를 자식 클래스가 물려받아 재사용하는 기법

  • extends 키워드를 사용하여 상속

  • 목적: 코드 재사용, 유지보수성 향상, 계층 구조 형성

다형성

  • 같은 메서드나 인터페이스를 사용하지만, 객체에 따라 다르게 동작할 수 있는 특성

  • 오버로딩(Overloading)과 오버라이딩(Overriding)으로 구현

  • 목적: 확장성 높은 코드 구현, 유연한 프로그램 설계

추상화

  • 불필요한 내부 구현을 숨기고, 핵심 기능만 제공하는 기법

  • abstract class 또는 interface를 사용해 구현

  • 목적: 복잡한 시스템을 단순화하고 유지보수를 용이하게 함

Last updated