Java에서 객체지향 프로그래밍 이해하기
Java에서 객체지향 프로그래밍 이해하기
안녕하세요, mj입니다! 오늘은 Java의 객체지향 프로그래밍(OOP) 개념과 기본 원리를 살펴보겠습니다. 객체지향 프로그래밍은 소프트웨어 설계의 중요한 패러다임 중 하나로, 재사용성과 유지보수성을 높이는 데 기여합니다. 그럼 본격적으로 OOP의 기본 개념을 알아보겠습니다.
1. 객체와 클래스
객체지향 프로그래밍의 핵심은 객체와 클래스입니다. 클래스는 객체의 설계도라고 할 수 있으며, 객체는 클래스를 기반으로 생성된 실체입니다.
class Car {
String color;
String model;
void displayDetails() {
System.out.println("모델: " + model + ", 색상: " + color);
}
}
public class Main {
public static void main(String[] args) {
Car myCar = new Car();
myCar.color = "빨강";
myCar.model = "소나타";
myCar.displayDetails();
}
}
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다:
모델: 소나타, 색상: 빨강
2. 상속
상속은 기존 클래스의 속성과 메소드를 새로운 클래스에서 재사용할 수 있게 해줍니다. 이를 통해 코드의 중복을 줄이고, 계층 구조를 형성할 수 있습니다.
class Vehicle {
void start() {
System.out.println("차량이 시작됩니다.");
}
}
class Bike extends Vehicle {
void ringBell() {
System.out.println("벨을 울립니다.");
}
}
public class Main {
public static void main(String[] args) {
Bike myBike = new Bike();
myBike.start();
myBike.ringBell();
}
}
위 코드를 실행하면 다음과 같은 출력이 생성됩니다:
차량이 시작됩니다.
벨을 울립니다.
3. 다형성
다형성은 동일한 메소드가 다양한 방식으로 동작할 수 있게 해주는 원리입니다. 메소드 오버로딩과 오버라이딩을 통해 구현됩니다.
class Animal {
void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
class Dog extends Animal {
void sound() {
System.out.println("멍멍!");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.sound();
}
}
위 코드를 실행하면 다음과 같은 출력이 생성됩니다:
멍멍!
4. 캡슐화
캡슐화는 객체의 속성을 보호하기 위해 접근 제한자를 사용하는 원리입니다. 이를 통해 데이터의 무결성을 유지할 수 있습니다.
class Account {
private double balance;
void deposit(double amount) {
balance += amount;
}
double getBalance() {
return balance;
}
}
public class Main {
public static void main(String[] args) {
Account myAccount = new Account();
myAccount.deposit(1000);
System.out.println("잔고: " + myAccount.getBalance());
}
}
위 코드를 실행하면 다음과 같은 출력이 생성됩니다:
잔고: 1000.0
5. 인터페이스
인터페이스는 클래스가 구현해야 하는 메소드의 집합입니다. 이를 통해 클래스가 특정한 계약을 따르도록 강제할 수 있습니다.
interface Drawable {
void draw();
}
class Circle implements Drawable {
public void draw() {
System.out.println("원을 그립니다.");
}
}
public class Main {
public static void main(String[] args) {
Drawable myCircle = new Circle();
myCircle.draw();
}
}
위 코드를 실행하면 다음과 같은 출력이 생성됩니다:
원을 그립니다.
결론
이번 포스팅에서는 Java의 객체지향 프로그래밍의 기본 원리를 살펴보았습니다. 객체지향 프로그래밍은 프로그램의 구조를 더욱 명확하고 이해하기 쉽게 만들어 주며, 코드의 재사용성과 유지보수성을 높이는 데 큰 도움이 됩니다. 앞으로도 다양한 예제를 통해 OOP의 개념을 지속적으로 익혀보시기 바랍니다. 감사합니다!
댓글
댓글 쓰기