객체 지향 프로그래밍(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의 기본 원칙들은 복잡한 문제를 해결하는 강력한 도구를 제공합니다.