0Pricing
Python For Kids · Lektion

Kapselung

Erkunden Sie fortgeschrittene OOP-Konzepte.

Kapselung ist eine kostenlose Python For Kids-Lektion auf CoddyKit. Dies ist Lektion 4 von 5. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python For Kids-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python For Kids-Kurs umfasst insgesamt 5 Lektionen.

Kapselung

Willkommen zurück bei der Lektion zur objektorientierten Programmierung (OOP)! Heute lernen Sie die Kapselung in Python kennen, ein wichtiges Konzept, das zum Schutz Ihrer Daten und Methoden innerhalb von Klassen beiträgt.

Kapselung — Illustration 1

Was ist Kapselung?

Kapselung bezeichnet das Bündeln von Daten (Attributen) und Methoden (Funktionen), die mit diesen Daten arbeiten, in einer einzigen Einheit, der sogenannten Klasse. Außerdem schränkt sie den direkten Zugriff auf bestimmte Bestandteile eines Objekts ein. Dadurch bleibt die interne Darstellung eines Objekts vor der Außenwelt verborgen.

  • Datenkapselung: Der interne Zustand eines Objekts wird vor unbeabsichtigten Eingriffen geschützt.
  • Zugriffskontrolle: Es wird festgelegt, wie auf Daten und Methoden zugegriffen und wie sie geändert werden können.

Die Kapselung stellt sicher, dass Objekte ihre eigenen Daten kontrollieren und nur das Notwendige nach außen freigeben.

Zugriffsmodifikatoren

In Python wird die Kapselung mithilfe von Zugriffsmodifikatoren umgesetzt, die die Sichtbarkeit von Klassenmitgliedern (Attributen und Methoden) steuern. Es gibt drei Arten von Zugriffsmodifikatoren:

  • Öffentlich: Von überall aus zugänglich.
  • Geschützt: Innerhalb der Klasse und ihrer Unterklassen zugänglich.
  • Privat: Nur innerhalb der Klasse selbst zugänglich.

Sehen wir uns an, wie Sie diese Zugriffsmodifikatoren in Python verwenden.

Öffentliche Attribute und Methoden

Auf öffentliche Mitglieder kann von außerhalb der Klasse zugegriffen werden. Standardmäßig sind alle Attribute und Methoden öffentlich, sofern nichts anderes festgelegt wurde.

Beispiel:

# Defines the Person class with public attributes and methods
class Person:
    def __init__(self, name, age):
        self.name = name  # Public attribute
        self.age = age    # Public attribute

    def greet(self):
        print("Hello, my name is " + self.name + "!")  # Public method

# Creates an object of the Person class
person1 = Person("Alice", 30)

# Accesses public attributes and methods
print(person1.name)  # Output: Alice
person1.greet()      # Output: Hello, my name is Alice!

Geschützte Attribute und Methoden

Geschützte Mitglieder werden durch einen einzelnen Unterstrich (_) am Anfang gekennzeichnet. Sie sind innerhalb der Klasse und ihrer Unterklassen zugänglich, sollten aber nicht direkt von außerhalb der Klasse verwendet werden.

Beispiel:

# Defines the Employee class with protected attributes and methods
class Employee:
    def __init__(self, name, salary):
        self._name = name      # Protected attribute
        self._salary = salary  # Protected attribute

    def _increase_salary(self, amount):
        self._salary += amount  # Protected method
        print(self._name + "'s new salary is " + str(self._salary))

# Creates an object of the Employee class
employee1 = Employee("Bob", 50000)

# Accesses protected attributes and methods (not recommended)
print(employee1._name)  # Output: Bob
employee1._increase_salary(5000)  # Output: Bob's new salary is 55000

Private Attribute und Methoden

Private Mitglieder werden durch zwei Unterstriche (__) am Anfang gekennzeichnet. Sie sind nur innerhalb der Klasse selbst zugänglich und können von außerhalb der Klasse nicht direkt verwendet werden.

Beispiel:

# Defines the BankAccount class with private attributes and methods
class BankAccount:
    def __init__(self, owner, balance):
        self.__owner = owner    # Private attribute
        self.__balance = balance  # Private attribute

    def deposit(self, amount):
        self.__balance += amount  # Modifies private attribute
        print("Deposited:", amount)
        self.__show_balance()

    def __show_balance(self):
        print("Current Balance:", self.__balance)  # Private method

# Creates an object of the BankAccount class
account1 = BankAccount("Charlie", 1000)

# Attempts to access private attributes and methods (will cause errors)
# print(account1.__owner)        # AttributeError
# account1.__show_balance()      # AttributeError

# Uses public methods to interact with private attributes
account1.deposit(500)  # Output:
                        # Deposited: 500
                        # Current Balance: 1500

Warum Kapselung verwenden?

Die Kapselung bietet mehrere Vorteile:

  • Kontrolle: Sie steuern, wie auf die Daten zugegriffen und wie sie geändert werden.
  • Sicherheit: Der interne Zustand eines Objekts wird vor unbeabsichtigten Änderungen geschützt.
  • Wartbarkeit: Der Code lässt sich leichter warten und ist weniger fehleranfällig.

Die Kapselung hilft Ihnen dabei, robuste und sichere Anwendungen zu entwickeln.

Beispiel für Kapselung: Klasse Car

Erstellen wir eine Car-Klasse, die Kapselung verwendet, um ihre Attribute und Methoden zu schützen.

Code:

# Defines the Car class with encapsulated attributes and methods
class Car:
    def __init__(self, make, model, year):
        self.make = make          # Public attribute
        self.model = model        # Public attribute
        self.__year = year        # Private attribute

    def get_year(self):
        return self.__year  # Public method to access private attribute

    def set_year(self, year):
        if year > 0:
            self.__year = year  # Public method to modify private attribute
            print("Year updated to", self.__year)
        else:
            print("Invalid year!")

    def __display_info(self):
        print(self.make, self.model, self.__year)  # Private method

    def show_info(self):
        self.__display_info()  # Public method that calls a private method

# Creates an object of the Car class
car1 = Car("Tesla", "Model S", 2020)

# Accesses public attributes and methods
print(car1.make)        # Output: Tesla
print(car1.get_year())  # Output: 2020

# Modifies the private attribute using a public method
car1.set_year(2021)     # Output: Year updated to 2021

# Calls a public method that interacts with a private method
car1.show_info()        # Output: Tesla Model S 2021

# Attempts to access private attributes and methods directly (will cause errors)
# print(car1.__year)         # AttributeError
# car1.__display_info()      # AttributeError
# Defines the Student class with encapsulated attributes
class Student:
    def __init__(self, name, grade):
        self.name = name      # Public attribute
        self.__grade = grade  # Private attribute

    def get_grade(self):
        return self.__grade  # Public method to access private attribute

    def set_grade(self, grade):
        if 0 <= grade <= 100:
            self.__grade = grade  # Updates the grade
        else:
            print("Invalid grade!")

# Creates an object of the Student class
student1 = Student("Diana", 85)

# Accesses and modifies the grade using public methods
print(student1.get_grade())  # Output: 85
student1.set_grade(90)
print(student1.get_grade())  # Output: 90

# Attempts to access the private attribute directly (will cause an error)
# print(student1.__grade)     # AttributeError

Großartige Arbeit!

Sie haben gelernt, wie Sie Kapselung in Python verwenden, um Daten und Methoden innerhalb von Klassen zu schützen. Kapselung hilft Ihnen dabei, den Zugriff auf die Daten Ihrer Objekte zu kontrollieren und Ihre Programme dadurch sicherer und wartbarer zu machen. Üben Sie weiter, indem Sie Klassen mit geeigneten Zugriffsmodifikatoren entwerfen, um Ihre Programmierkenntnisse zu verbessern!

Kapselung — Illustration 10

Häufig gestellte Fragen

Ist die Lektion „Kapselung“ kostenlos?

Ja — der vollständige Text von „Kapselung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python For Kids-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python For Kids-Kurs umfasst insgesamt 5 Lektionen.

Was lerne ich in „Kapselung“?

Erkunden Sie fortgeschrittene OOP-Konzepte. Du übst Python For Kids mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python For Kids zu starten?

Keine Vorkenntnisse erforderlich. Python For Kids auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 5.

Wie lange dauert die Lektion „Kapselung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python For Kids-Lektion Code schreiben und ausführen?

Ja. Jede Python For Kids-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einführung in die OOP
  2. Klassen und Objekte erstellen
  3. Vererbung
  4. Kapselung
  5. Polymorphismus
← Zurück zu Python For Kids