Menu
CoddyTech

Lớp và đối tượng

Thuộc phần Lập trình hướng đối tượng trong hành trình Python của Coddy. Bài học 3 trên 64.

Lớp và đối tượng có mục đích khác nhau. Lớp là bản thiết kế, còn đối tượng là thứ bạn tạo ra từ bản thiết kế đó.

Đây là một ví dụ về lớp:

class Dog:
	# dùng chung cho tất cả các đối tượng Dog
    species = "Canis familiaris"

Giờ đây, bạn có thể truy cập trực tiếp vào thuộc tính của lớp bằng cách dùng Dog.species, trong đó Dog là tên lớp:

print(f"Class species: {Dog.species}")
# Class species: Canis familiaris

Cách này truy cập dữ liệu từ chính lớp, không phải từ một đối tượng cụ thể nào.

Bây giờ, hãy cùng khám phá cách hoạt động của nó với các đối tượng. Tạo các đối tượng từ lớp Dog:

dog1 = Dog()
dog2 = Dog()

Đối tượng có thể có các thuộc tính riêng mà lớp không thể có:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon" 
dog2.breed = "Shu'ali"

So sánh những gì lớp và đối tượng có thể làm:

print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")

Đầu ra:

Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiaris

Điểm khác biệt chính: Lớp Dog định nghĩa những điểm chung của tất cả chó, còn các đối tượng dog1 và dog2 đại diện cho từng con chó cụ thể với những thuộc tính riêng.

challenge icon

Thử thách

Dễ

Hoàn thiện code để tạo lớp Student và hai đối tượng học sinh. Thêm tên và điểm khác nhau cho mỗi học sinh.

  • student.py: Đây là nơi bạn định nghĩa lớp Student.
  • driver.py: Tệp thực thi chính, sẽ nhập và sử dụng lớp Student của bạn:

    Hoàn thiện code để tạo lớp Student và hai đối tượng học sinh. Thêm tên và điểm khác nhau cho mỗi học sinh.

    Tên của student1 là "Alice" với điểm "A".

    Tên của student2 là "Bob" với điểm "B".

Tự làm thử

# Nhập lớp Student
from student import Student

# TODO: Tạo hai đối tượng học sinh


# TODO: Thêm thuộc tính cho student1


# TODO: Thêm thuộc tính cho student2


# In ra thông tin học sinh
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Python online