Sparta/자료 & 기타

Java 객체지향 프로그래밍(OOP) 정리

hyunjg94 2025. 3. 7. 21:30

1️⃣ 패키지(Package)

  • 패키지란? 관련 있는 클래스들을 논리적으로 그룹화하는 개념
  • 이점: 코드 관리가 편리하고, 클래스 이름 충돌 방지
  • 사용법:
package com.myapp.models; // 패키지 선언
public class User {
    private String name;
    public User(String name) { this.name = name; }
}

2️⃣ 객체지향 프로그래밍(OOP) 개념

  • OOP(Object-Oriented Programming) = "객체를 중심으로 프로그램을 설계하는 방식"
  • 이점: 재사용성, 유지보수성, 확장성이 뛰어남
  • 실생활 예제:
    • 자동차 = 객체
    • 속성(변수) = 브랜드, 색상, 속도
    • 행동(메서드) = 출발, 정지, 가속

3️⃣ OOP의 4대 원칙

1. 캡슐화(Encapsulation)

  • 데이터 보호 및 외부 접근 제한
  • 예제: 은행 계좌 (private balance; 사용)
class BankAccount {
    private int balance;
    public void deposit(int amount) { balance += amount; }
    public int getBalance() { return balance; }
}

2. 상속(Inheritance)

  • 기존 클래스를 확장하여 새로운 클래스를 생성
  • 예제: Animal → Dog, Cat (부모 클래스의 기능을 자식이 상속)
class Animal {
    void eat() { System.out.println("먹고 있습니다."); }
}
class Dog extends Animal {
    void bark() { System.out.println("멍멍!"); }
}

3. 다형성(Polymorphism)

  • 같은 메서드라도 여러 형태로 동작 가능
  • 예제: MusicPlayer → MP3Player, CDPlayer (각기 다른 재생 방식)
class MusicPlayer { void play() { System.out.println("음악 재생"); } }
class MP3Player extends MusicPlayer {
    void play() { System.out.println("MP3 재생"); }
}

4. 추상화(Abstraction)

  • 필요한 기능만 제공하고, 세부 구현은 감춤
  • 예제: 자동차 운전 (운전자는 내부 엔진 작동 원리를 몰라도 됨)
abstract class Vehicle {
    abstract void move();
}
class Car extends Vehicle {
    void move() { System.out.println("도로를 달립니다."); }
}

4️⃣ 클래스(Class)와 객체(Object)의 차이

  • 클래스(Class) = 객체를 생성하는 설계도
  • 객체(Object) = 클래스의 실제 인스턴스
  • 인스턴스(Instance) = 특정 클래스로부터 생성된 개별 객체
  • 예제: Cookie 클래스와 chocolateCookie 인스턴스
class Cookie { String flavor; }
Cookie chocolateCookie = new Cookie();  // Cookie 클래스의 인스턴스

'Sparta > 자료 & 기타' 카테고리의 다른 글

JAVA 객체 활용  (1) 2025.03.03
JAVA 프로그래밍 기초  (0) 2025.03.03
Spata 참여!  (0) 2025.03.03