반응형
📄 본문
객체지향 프로그래밍(OOP)은 개발자가 꼭 알아야 할 핵심 개념 중 하나다.
특히 정보처리기사, NCS 필기, 개발자 채용 면접에서 자주 등장하는 주제이기도 하다.
객체지향의 핵심은 4가지 특징으로 요약할 수 있다:
캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism), 추상화(Abstraction)
✅ 1. 캡슐화 (Encapsulation)
캡슐화는 데이터와 메서드를 하나의 객체로 묶고, 외부에서 접근할 수 없도록 숨기는 방식이다.
주로 private 접근제어자와 getter/setter 메서드로 구현된다.
public class User {
private String password;
public void setPassword(String pw) {
this.password = pw;
}
public String getPassword() {
return this.password;
}
}
장점
- 외부로부터 데이터 보호
- 유지보수성 향상
- 코드의 안정성 증가
✅ 2. 상속 (Inheritance)
상속은 기존 클래스의 속성과 기능을 다른 클래스가 물려받는 개념이다.
재사용성과 확장성을 높이는 데 효과적이다.
class Animal {
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
void sound() {
System.out.println("멍멍");
}
}
장점
- 코드 재사용
- 기능 확장 용이
- 계층적 구조 구성 가능
✅ 3. 다형성 (Polymorphism)
같은 메서드명으로 서로 다른 동작을 구현하는 개념이다.
오버라이딩과 오버로딩이 대표적인 예시다.
class Shape {
void draw() {
System.out.println("도형 그리기");
}
}
class Circle extends Shape {
void draw() {
System.out.println("원 그리기");
}
}
장점
- 유연한 코드 설계
- 객체 교체 용이
- 코드 가독성 향상
✅ 4. 추상화 (Abstraction)
불필요한 세부 사항은 숨기고 중요한 기능만 보여주는 개념이다.
인터페이스 또는 추상 클래스 등을 활용하여 구현한다.
abstract class Machine {
abstract void operate();
}
class WashingMachine extends Machine {
void operate() {
System.out.println("세탁기 작동 중");
}
}
장점
- 복잡도 감소
- 개발자 간 협업 효율 증가
- 모듈화된 설계 가능
💡 실생활 비유로 이해하기
- 캡슐화: 약은 캡슐에 싸여 있어 내부를 알 수 없고, 필요한 기능만 제공
- 상속: 부모의 특징을 자식이 물려받음
- 다형성: 같은 버튼이지만 TV에서는 켜기, 에어컨에서는 바람세기 조절
- 추상화: 자동차 운전자가 내부 구조 몰라도 운전 가능
반응형
'IT개발 > JAVA' 카테고리의 다른 글
[JSP] JSP 핵심 문법 정리 | JSP 입문자를 위한 완벽 가이드 (0) | 2025.04.08 |
---|---|
Web Server와 WAS의 차이 (0) | 2025.04.07 |
자바(Java)에서 1:N 관계와 상속 (0) | 2025.04.06 |
[Java] Stack과 Queue: 기본 개념, 주요 차이점 및 활용 사례 (0) | 2025.03.05 |
Java의 Optional: Null 안전한 프로그래밍(Java8) (0) | 2025.02.27 |
댓글