접근제어자부터 다형성까지, 자바 객체지향 필수 문법 모음

2025. 8. 6. 09:02·Back-End/Java

📚 자바 객체지향 핵심 문법 5종 정리 – 접근제어자부터 다형성까지!

자바의 객체지향(OOP) 문법 중 실무와 시험에 자주 등장하는 5가지 핵심 주제를 예제 코드와 함께 정리했습니다.
접근제어자, final 키워드, 클래스 타입 변환, 다형성 등 꼭 알아야 할 내용을 순서대로 익혀보세요!


🧩 1. 접근제어자 – public, protected, default, private

✅ 핵심 요약

제어자 접근 가능 범위 설명
public 어디서든 가능 외부 공개
protected 같은 패키지 + 상속받은 자식 클래스 부분 공개
(default) 같은 패키지 내 생략 가능
private 같은 클래스 내 완전 은닉
 

✅ 코드 핵심 포인트

class PrivateClass {
    private int myField;
    private void myMethod() {
        System.out.println(myField);
    }
}
  • 외부에서 myField, myMethod() 접근 불가
  • ProtectedClass는 OtherClass를 상속받아 외부 패키지라도 protected 멤버 접근 가능

⚠️ 주의할 점

  • 클래스 선언 자체엔 protected 사용 불가 (중첩 클래스 제외)
  • import 패키지.*는 편리하지만 유지보수 측면에서 권장되지 않음

🔒 2. final 키워드 – 상수화, 재정의 금지, 상속 금지

✅ 사용 위치

위치 의미
변수 값 변경 불가 (상수)
메서드 오버라이딩 금지
클래스 상속 금지
 

✅ 코드 예시

final int FINAL_VARIABLE = 30;

public final void myMethod() {
    System.out.println("재정의 불가 메서드");
}

✅ 불변성 예제

private final String gender;
StudentClass(String gender) {
    this.gender = gender; // 생성자 주입 방식
}

⚠️ 주의할 점

  • final 변수는 반드시 "선언과 동시에" 초기화하거나, 생성자에서 초기화
  • 상속, 오버라이딩을 차단하므로 유연성 감소 가능

🔄 3. 클래스 타입 변환 – 업캐스팅과 다운캐스팅

✅ 핵심 개념

변환 종류 설명 형변환 필요 여부
업캐스팅 자식 → 부모 타입 X (자동 변환)
다운캐스팅 부모 → 자식 타입 O (명시적 변환)
 

✅ 예제 코드

G_Parent parent = new G_Child(); // 업캐스팅
G_Child child = (G_Child) parent; // 다운캐스팅

⚠️ 주의할 점

  • 다운캐스팅 시 instanceof 연산자 사용해 타입 확인 필요
  • 잘못된 캐스팅 시 ClassCastException 발생

🚗 4. 다형성 (Polymorphism) – 하나의 타입, 다양한 동작

✅ 개념

  • 하나의 부모 클래스 타입으로 여러 자식 객체를 참조 가능
  • 오버라이딩을 통해 동일한 메서드 이름으로 서로 다른 동작 수행

✅ 예제 코드

Vehicle bus = new Bus();
bus.depart(); // "버스가 출발합니다"

Vehicle subway = new Subway();
subway.depart(); // "열차가 출발합니다"

✅ instanceof 활용

if (bus instanceof Bus) {
    Bus myBus = (Bus) bus;
}

⚠️ 주의할 점

  • 다형성은 반드시 상속 + 오버라이딩 + 업캐스팅이 모두 갖춰져야 작동
  • instanceof 남용 지양 → 다운캐스팅이 꼭 필요한 상황에서만 사용

'Back-End > Java' 카테고리의 다른 글

SOLID 원칙, 한 번만 보면 외워지는 자바 예제.zip  (3) 2025.08.11
추상 클래스 vs 인터페이스 – 차이, 특징, 활용법  (3) 2025.08.08
Java 상속과 생성자 흐름 완전 정복  (3) 2025.08.04
Java 메서드 완벽 가이드: 개념부터 오버로딩까지  (1) 2025.07.31
객체 지향 프로그래밍(OOP) 란?  (3) 2025.07.28
'Back-End/Java' 카테고리의 다른 글
  • SOLID 원칙, 한 번만 보면 외워지는 자바 예제.zip
  • 추상 클래스 vs 인터페이스 – 차이, 특징, 활용법
  • Java 상속과 생성자 흐름 완전 정복
  • Java 메서드 완벽 가이드: 개념부터 오버로딩까지
rpsnrpsn
rpsnrpsn
rpsnrpsn 님의 블로그 입니다.
  • rpsnrpsn
    rpsnrpsn 님의 블로그
    rpsnrpsn
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • Back-End (18)
        • Java (17)
        • DB (1)
      • Front-End (3)
        • HTML (1)
        • CSS (0)
        • JavaScript (1)
        • Etc. (1)
  • 블로그 메뉴

    • 홈
    • Github
  • hELLO· Designed By정상우.v4.10.4
rpsnrpsn
접근제어자부터 다형성까지, 자바 객체지향 필수 문법 모음
상단으로

티스토리툴바