객체 지향 프로그래밍(OOP)은 Java의 기본 개념으로, 재사용 가능하고 확장 가능한 모듈식 코드를 더 쉽게 만들 수 있도록 해줍니다. 이번 포스팅에서는 클래스, 객체, 상속, 캡슐화, 다형성, 추상화 등 OOP의 핵심 원칙을 살펴보겠습니다.
OOP는 데이터와 해당 데이터를 조작하는 방법을 포함할 수 있는 "객체" 개념을 기반으로 하는 프로그래밍 패러다임입니다. 코드를 개체로 구성하면 관리하기 쉽고 이해하기 쉬운 프로그램을 만들 수 있습니다.
OOP의 네 가지 주요 원칙은 다음과 같습니다.
Java의 맥락에서 이러한 각 개념을 살펴보겠습니다.
2.1 클래스란 무엇인가요?
Java의 클래스는 객체 생성을 위한 청사진입니다. 클래스에서 생성된 객체가 갖게 될 속성(필드)과 동작(메서드)을 정의합니다. 클래스를 개체의 구조와 기능을 설명하는 템플릿으로 생각하세요.
수업 예:
이 예에서 Car 클래스에는 마크, 모델, 연도의 세 가지 필드와 startEngine() 메서드가 하나 있습니다.
2.2 객체란 무엇인가요?
객체는 클래스의 인스턴스입니다. 클래스가 정의되면 해당 클래스에서 각각 필드에 대한 고유한 값을 갖는 여러 개체를 만들 수 있습니다.
객체 생성의 예:
이 예에서 myCar는 Car 클래스의 객체이며 해당 필드에 특정 값이 할당되어 있습니다.
챌린지 1:
제목, 저자 및 페이지에 대한 필드가 있는 Book이라는 클래스를 만듭니다. Book 클래스의 객체를 생성하고, 해당 필드를 설정하고, 책의 세부정보를 인쇄하세요.
캡슐화는 데이터(필드)와 데이터에서 작동하는 메서드를 단일 단위 또는 클래스로 묶고 객체의 일부 구성 요소에 대한 액세스를 제한하는 방식입니다. 이는 액세스 수정자(개인, 공개, 보호)를 사용하여 달성됩니다.
캡슐화는 의도하지 않은 간섭과 오용으로부터 개체의 내부 상태를 보호하는 데 도움이 됩니다.
캡슐화의 예:
이 예에서 Person 클래스는 해당 필드를 비공개로 만들어 캡슐화하고 해당 필드에 액세스하고 수정할 수 있는 공개 메서드(getName, setName, getAge, setAge)를 제공합니다.
챌린지 2:
필드를 비공개로 설정하고 각 필드에 대한 공개 getter 및 setter 메서드를 생성하여 Book 클래스에 캡슐화를 추가합니다.
상속은 한 클래스가 다른 클래스의 속성과 메서드를 상속할 수 있도록 하는 메커니즘입니다. 상속받는 클래스를 "서브클래스" 또는 "자식 클래스"라고 하며, 상속받는 클래스를 "슈퍼클래스" 또는 "부모 클래스"라고 합니다.
상속은 코드 재사용성을 촉진하고 클래스 간에 자연스러운 계층 구조를 설정합니다.
상속의 예:
이 예에서 Dog 클래스는 Animal 클래스의 eat 메소드를 상속받았으며 자체 메소드인bark도 가지고 있습니다.
챌린지 3:
Book 클래스에서 상속되는 하위 클래스 EBook을 만듭니다. EBook 클래스에 새로운 필드 fileSize 및 메서드 download()를 추가합니다.
다형성을 사용하면 서로 다른 클래스의 객체를 공통 슈퍼클래스의 객체로 처리할 수 있습니다. 이는 메서드 재정의와 인터페이스를 통해 달성할 수 있습니다.
5.1 메서드 재정의
메서드 재정의를 사용하면 하위 클래스가 해당 슈퍼클래스에 이미 정의된 메서드의 특정 구현을 제공할 수 있습니다.
다형성의 예:
이 예에서 myAnimal은 Animal 유형이지만 Cat 유형의 객체를 참조하며 재정의된 Cat 사운드 메서드를 호출합니다.
챌린지 4:
책 세부 정보의 문자열 표현을 반환하려면 Book 클래스의 toString 메서드를 재정의하세요.
추상화에는 시스템의 복잡한 구현 세부 사항을 숨기고 필요한 부분만 노출하는 작업이 포함됩니다. 이는 추상 클래스와 인터페이스를 사용하여 달성할 수 있습니다.
6.1 추상 클래스
추상 클래스는 인스턴스화할 수 없으며 하위 클래스에서 구현해야 하는 추상 메서드(본문이 없는 메서드)를 포함할 수 있습니다.
추상화의 예:
이 예에서 Shape는 Circle 클래스에 의해 구현되는 추상 메서드 draw가 있는 추상 클래스입니다.
チャレンジ 5:
抽象メソッド powerOn を使用して抽象クラス Device を作成します。 powerOnメソッドを実装するサブクラスSmartphoneを作成します。
この投稿では、Java のオブジェクト指向プログラミングの主要な概念であるクラス、オブジェクト、継承、カプセル化、ポリモーフィズム、抽象化について説明しました。これらの原則を理解することは、複雑で効率的な Java アプリケーションを構築するために非常に重要です。
提供された例と課題を自由に試してみてください。ご質問がある場合、またはさらに説明が必要な場合は、以下にコメントを残してください。
위 내용은 객체 지향 프로그래밍(OOP) 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!