산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 추상화 마스터: 추상 클래스, 메서드, 실전 예제

Java에서 추상화란?

Java에서 추상화는 객체의 필수 기능만 노출하고, 사용자와 무관한 내부 구현 세부사항을 숨기는 것입니다. 복잡성과 노력을 줄여 개발을 단순화합니다. 추상화는 추상 클래스, 추상 메서드, 인터페이스를 통해 달성되며, Java 객체지향 설계의 핵심 개념입니다.

이 튜토리얼에서 배울 내용:

추상 클래스 이해하기

추상 클래스는 자체적으로 인스턴스화할 수 없지만 관련된 서브클래스의 공통 기반을 정의할 수 있는 클래스입니다. 추상 메서드(몸체 없음)와 구현된 메서드(완전 구현)를 모두 포함할 수 있습니다. 추상 클래스의 정의적 특징은 최소 하나의 추상 메서드를 선언하거나, 설계상 명시적으로 abstract로 표시된 것입니다.

많은 Java 튜토리얼에서 사용되는 고전적인 Shape 계층을 살펴보세요:

Java 추상화 마스터: 추상 클래스, 메서드, 실전 예제

Shape 클래스는 공통 속성과 calculateArea() 메서드 시그니처를 포함하며, Rectangle, Circle, Triangle이 구체적 구현을 제공합니다. 이론적으로 Shape 클래스는 인스턴스화 가능하지만, 그렇게 하는 것은 의미론적으로 무의미하고 오류를 초래할 수 있습니다. 따라서 abstract로 선언합니다:

abstract class Shape {
    // 공통 코드
}

추상 메서드란?

추상 메서드는 구현을 제공하지 않고 메서드 시그니처만 선언합니다. 추상 클래스 내에서 정의되어야 하며 구체적 서브클래스에서 오버라이드되어야 합니다. 추상 메서드는 본문이 없으므로 final이나 static으로 표시할 수 없습니다.

예제 문법:

abstract public void calculateArea();

Shape 예제에서 각 서브클래스는 자신만의 공식으로 calculateArea()를 구현해야 하며, 모든 도형이 면적을 보고할 수 있도록 하면서 공통 인터페이스를 유지합니다.

실전 코드 예제

abstract class Shape {
    abstract void calculateArea();
}
class Rectangle extends Shape {
    void calculateArea() {
        System.out.println("Area of Rectangle");
    }
    public static void main(String[] args) {
        Shape obj = new Rectangle();
        obj.calculateArea();
    }
}

추상 클래스 핵심 포인트

Java의 Final 키워드

final 수정자는 클래스, 메서드, 변수를 잠가서 오버라이드하거나 변경할 수 없게 합니다:

예제: Abstract와 Final 결합

abstract class Shape {
    final int b = 20;
    public void display() {
        System.out.println("This is display method");
    }
    abstract public void calculateArea();
}
public class Rectangle extends Shape {
    public static void main(String[] args) {
        Rectangle obj = new Rectangle();
        obj.display();
        // obj.b = 200; // 컴파일 에러: final 변수에 할당 불가
    }
    @Override
    public void calculateArea() {
        System.out.println("Calculating rectangle area");
    }
}

calculateArea() 구현의 주석을 해제하면 컴파일 에러가 해결되며, b 수정 시도는 final 변수의 불변성을 보여줍니다.

추상 메서드 규칙

java

  1. C# 추상 클래스와 추상 메서드: 실전 가이드
  2. Java 추상 클래스와 메서드 완벽 가이드
  3. C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제
  4. Java String length() 메서드: 문자열 크기 구하기 (예제 포함)
  5. Java String.charAt() 완전 이해: 문법, 반환타입, 예외, 실전 예제
  6. Java String.contains() 메서드: 부분문자열 포함 여부 확인 (실전 예제)
  7. Java String.endsWith() 마스터: 문자열 접미사 확인 예제
  8. Java 인터페이스 vs 추상 클래스: 올바른 추상화 선택 가이드
  9. Java BufferedReader로 파일 읽기: 실전 가이드와 예제
  10. 자바 삽입 정렬 알고리즘: 명확한 예제와 단계별 가이드