객체 지향 프로그래밍(OOP)은 클래스의 인스턴스인 "객체" 개념을 중심으로 돌아가는 프로그래밍 패러다임입니다. 객체를 사용하여 소프트웨어를 설계 및 구성하고 실제 시스템을 모델링하는 방식으로 데이터와 동작을 구성하는 데 중점을 둡니다. OOP는 네 가지 주요 개념으로 특징 지어집니다.
예:
class Car: def __init__(self, make, model): self.make = make self.model = model def drive(self): print(f"The {self.make} {self.model} is driving.") # Creating an object of class Car my_car = Car("Toyota", "Corolla") my_car.drive() # Output: The Toyota Corolla is driving.
캡슐화는 객체의 일부 구성 요소에 대한 액세스를 제한하면서 클래스 내에서 해당 데이터를 조작하는 데이터(속성)와 메서드(함수)를 묶는 개념입니다. 이는 데이터를 비공개(또는 보호)로 만들고 필요한 경우 해당 데이터에 액세스하거나 수정할 수 있는 공개 방법을 제공함으로써 달성됩니다. 이는 데이터 수정 방법을 제어하는 데 도움이 되며 의도하지 않은 부작용의 위험을 줄여줍니다.
예:
class BankAccount: def __init__(self, balance): self.__balance = balance # Private attribute def deposit(self, amount): self.__balance += amount def get_balance(self): return self.__balance account = BankAccount(1000) account.deposit(500) print(account.get_balance()) # Output: 1500
상속을 통해 클래스(하위 클래스 또는 하위 클래스라고 함)가 다른 클래스(슈퍼클래스 또는 상위 클래스라고 함)에서 속성과 메서드를 상속할 수 있습니다. 이는 코드 재사용을 촉진하고 클래스 간의 자연스러운 계층 구조를 설정합니다.
예:
class Animal: def speak(self): print("Animal speaks") class Dog(Animal): # Dog inherits from Animal def speak(self): print("Dog barks") my_dog = Dog() my_dog.speak() # Output: Dog barks
이 예에서 Dog는 Animal을 상속하지만 자체 구현을 제공하기 위해 talk 메소드를 재정의합니다.
다형성을 사용하면 서로 다른 클래스의 객체를 공통 인터페이스를 통해 동일한 클래스의 인스턴스로 처리할 수 있습니다. 이는 메서드 재정의(하위 클래스가 상위 클래스에 정의된 메서드의 자체 구현을 제공하는 경우) 또는 메서드 오버로딩(동일 클래스에서 다른 매개변수를 사용하는 동일한 메서드 이름, Python에서는 덜 일반적임)을 통해 달성됩니다. 🎜>
예:
class Animal: def speak(self): raise NotImplementedError("Subclasses must implement this method") class Cat(Animal): def speak(self): print("Cat meows") class Dog(Animal): def speak(self): print("Dog barks") animals = [Cat(), Dog()] for animal in animals: animal.speak() # Output: Cat meows, Dog barks이 경우 Cat과 Dog는 모두 Animal 객체로 취급되지만, 특정 talk 메소드가 호출되어 다형성을 보여줍니다.
5.
예:
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height rect = Rectangle(10, 5) print(rect.area()) # Output: 50이 예에서 Shape는 추상 메서드 Area()가 있는 추상 클래스입니다. 실제 구현은 서브클래스 Rectangle에서 제공됩니다.
위 내용은 객체 지향 프로그래밍(OOP) 원리의 포괄적인 개요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!