Object-Oriented Programming (OOP)은 "객체" 개념을 기반으로 하는 프로그래밍 패러다임으로, 이는 데이터(속성 또는 프로퍼티)와 코드(메서드 또는 함수)를 포함할 수 있는 "객체"를 중심으로 합니다. OOP의 네 가지 주요 원칙은 다음과 같습니다:
1. 캡슐화
캡슐화는 데이터(속성)와 해당 데이터를 조작하는 메서드(함수)를 하나의 단일 단위인 클래스로 묶는 것입니다. 자바에서 클래스는 객체를 생성하기 위한 청사진이며, 캡슐화는 객체의 내부 세부 사항을 숨기고 필요한 부분만 노출함으로써 도움을 줍니다.
예시 (자바):
public class Car {
private String model;
private int year;
public void setModel(String model) {
this.model = model;
}
public String getModel() {
return model;
}
// 'year' 및 다른 메서드에 대해서도 유사합니다...
}
2. 상속
상속은 한 클래스가 다른 클래스로부터 속성과 동작을 상속받을 수 있는 메커니즘입니다. 이는 코드의 재사용성을 촉진하며 자바에서는 슈퍼클래스(기본 클래스)와 서브클래스(파생 클래스) 간의 관계를 설정합니다.
예시 (자바)
public class Animal {
public void eat() {
System.out.println("동물이 먹고 있습니다");
}
}
public class Dog extends Animal {
// Dog가 Animal의 'eat' 메서드를 상속받습니다.
public void bark() {
System.out.println("개가 짖고 있습니다");
}
}
3. 다형성
다형성은 서로 다른 유형의 객체를 공통 유형의 객체로 처리할 수 있게 하는 기능입니다. 자바에서는 메서드 오버로딩 및 메서드 오버라이딩을 통해 다형성을 구현합니다.
예시 (자바)
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
4. 추상화
추상화는 복잡한 시스템을 핵심 속성과 동작을 기반으로 클래스를 모델링함으로써 단순화하는 개념입니다. 이는 개발자가 객체가 어떻게 기능하는지보다는 무엇을 수행하는지에 중점을 두게 합니다.
예시 (자바)
public abstract class Shape {
// 추상 메서드 - 슈퍼클래스에서 구현이 없습니다.
public abstract double calculateArea();
}
public class Circle extends Shape {
private double radius;
// 서브클래스에서 추상 메서드를 구현합니다.
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
이러한 자바 OOP의 원칙은 코드를 현실 세계 엔터티와 그들의 상호 작용 주변에 구성함으로써 모듈화되고 확장 가능하며 유지보수가 용이한 소프트웨어를 구축하는 데 기여합니다.
'Programming > Java' 카테고리의 다른 글
JVM의 주요기능 (1) | 2023.12.30 |
---|---|
JMM(Java Memory Model)이 개발자에게 미치는 영향 (1) | 2023.12.29 |
synchronized 키워드와 java.util.concurrent 사용 간의 차이점 (0) | 2023.12.28 |
Java 예외 처리 마스터하기: Try-Catch 블록 및 Throws 절에 대한 종합 가이드 (0) | 2023.12.23 |
Java의 ArrayList와 LinkedList 비교: 올바른 데이터 구조 선택 (1) | 2023.12.22 |