[Python] Lesson 36 – Object Oriented Programming (OOP)

Object Oriented Programming (OOP) là một phương pháp lập trình trong đó chương trình được tổ chức dưới dạng các đối tượng, mỗi đối tượng có thuộc tính và phương thức riêng. OOP giúp cho việc lập trình trở nên dễ hiểu, dễ bảo trì và có tính tái sử dụng cao.

1. Class đơn.

Một ví dụ chi tiết về OOP trong Python có thể là việc tạo ra một lớp Employee để quản lý thông tin nhân viên trong một công ty. Lớp Employee sẽ có các thuộc tính như name, age, position, salary và các phương thức để cập nhật thông tin nhân viên như change_position() hay raise_salary().

Dưới đây là ví dụ code mẫu để tạo lớp Employee:

class Employee:
    def __init__(self, name, age, position, salary):
        self.name = name
        self.age = age
        self.position = position
        self.salary = salary

    def change_position(self, new_position):
        self.position = new_position

    def raise_salary(self, amount):
        self.salary += amount

Sau khi tạo lớp Employee, ta có thể tạo các đối tượng Employee mới với các thuộc tính tương ứng:

employee1 = Employee("John Doe", 30, "Developer", 50000)
employee2 = Employee("Jane Smith", 25, "Designer", 45000)

Sau đó, ta có thể sử dụng các phương thức của lớp Employee để thao tác với các đối tượng này, ví dụ như:

employee1.change_position("Senior Developer")
employee2.raise_salary(5000)

2. Class lồng nhau.

Trong OOP, các class có thể được lồng vào nhau (nested class). Khi đó, class bên ngoài gọi là lớp cha (outer class), và class bên trong gọi là lớp con (inner class). Lớp con được định nghĩa và sử dụng bên trong lớp cha và không thể truy cập từ bên ngoài lớp cha.

class Employee:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.job = self.Job()

    class Job:
        def __init__(self):
            self.title = 'Software Developer'
            self.salary = 50000

    def display_info(self):
        print('Name:', self.name)
        print('Age:', self.age)
        print('Job title:', self.job.title)
        print('Salary:', self.job.salary)

emp = Employee('John', 30)
emp.display_info()

Trong ví dụ này, Job là một lớp con được định nghĩa bên trong lớp cha Employee. Lớp con này được sử dụng để lưu trữ thông tin về công việc của nhân viên, bao gồm chức danh và mức lương. Lớp cha Employee sử dụng lớp con này để hiển thị thông tin đầy đủ về nhân viên, bao gồm cả thông tin về công việc.

3. __init__() là gì?

__init__() là một method đặc biệt trong Python, được gọi là constructor. Nó được gọi mỗi khi một đối tượng mới được tạo ra từ một class. Method __init__() này được sử dụng để khởi tạo giá trị cho các thuộc tính của một đối tượng.

Sau khi đối tượng được khởi tạo, các thuộc tính này có thể được truy cập bằng cách sử dụng biến đối tượng và tên thuộc tính, giống như các thuộc tính bình thường.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

person1 = Person("Alice", 25)
person1.introduce()  # output: "Hello, my name is Alice and I am 25 years old."

Trong ví dụ này, khi một đối tượng person1 được tạo ra từ class Person, method __init__() được gọi và thiết lập giá trị cho thuộc tính nameage của đối tượng. Sau đó, method introduce() được gọi để giới thiệu đối tượng person1 với tên và tuổi đã thiết lập.

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email