객체 지향 프로그래밍: 자바 예제를 통한 OOP 개념 설명

객체 지향 프로그래밍(OOP)은 소프트웨어 개발에서 중심적인 패러다임 중 하나입니다. 자바는 이러한 패러다임을 완벽하게 구현하는 언어 중 하나로, 이 글에서는 자바를 사용하여 OOP의 핵심 개념들을 설명하고자 합니다.

OOP의 네 가지 기본 원칙

  • 캡슐화(Encapsulation):
    • 데이터(속성)와 코드(메소드)를 하나의 단위로 묶는 과정입니다.
    • 예제: 계좌(Account) 클래스에서 잔액(balance)을 private로 설정하여 외부 접근을 제한합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Account {
    private double balance;
    public Account(double initialBalance) {
        if (initialBalance > 0) {
            this.balance = initialBalance;
        }
    }
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
    public double getBalance() {
        return balance;
    }
}
cs

 

상속(Inheritance):

  • 한 클래스가 다른 클래스의 속성과 메소드를 상속받는 것입니다.
  • 예제: 직원(Employee) 클래스가 사람(Person) 클래스로부터 상속받습니다.
1
2
3
4
5
6
7
8
9
10
11
12
public class Person {
    private String name;
    private int age;
    // Getters and Setters
}
public class Employee extends Person {
    private String employeeId;
    // Employee class methods
}
cs

 

다형성(Polymorphism):

  • 객체가 여러 형태를 가질 수 있는 능력입니다.
  • 예제: 도형(Shape) 클래스를 확장하는 다양한 형태의 도형 클래스(원, 사각형 등).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public abstract class Shape {
    public abstract void draw();
}
public class Circle extends Shape {
    public void draw() {
        System.out.println(“Drawing Circle”);
    }
}
public class Rectangle extends Shape {
    public void draw() {
        System.out.println(“Drawing Rectangle”);
    }
}
cs

 

추상화(Abstraction):

  • 복잡한 실제 상황을 단순화하는 과정입니다.
  • 예제: 동물(Animal) 추상 클래스와 그것을 상속받는 구체적인 클래스.
1
2
3
4
5
6
7
8
9
public abstract class Animal {
    public abstract void sound();
}
public class Dog extends Animal {
    public void sound() {
        System.out.println(“Bark”);
    }
}
cs

자바를 통한 객체 지향 프로그래밍의 이해는 개발자로 하여금 더욱 유연하고 효율적인 소프트웨어 설계를 가능하게 합니다. OOP의 기본 원칙들은 복잡한 문제를 해결하는 강력한 도구를 제공합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다