Trong video trước, chúng ta đã biết rằng Opie là cái mà chúng ta gọi là mô hình, một cách để suy nghĩ về mã của chúng ta và
cấu trúc mã của chúng ta.
Và tôi sẽ liên kết đến bài viết tuyệt vời này từ Wikipedia về lịch sử của các ngôn ngữ lập trình.
Bạn thấy đấy, chúng tôi đã bắt đầu với các ngôn ngữ lập trình cơ bản.
Chúng ta có những thứ như hợp ngữ ở cấp độ thực sự thấp, thực sự gần với mã máy.
Chúng tôi đã có những thứ như COBOL và sau đó chúng tôi dần dần bắt đầu viết nhiều mã hơn vào những năm 60
và 70, chúng tôi bắt đầu thiết lập một số mô hình cơ bản này.
Và một trong những mô hình lớn xuất hiện, đặc biệt là với ngôn ngữ lập trình Smalltalk,
đó là ý tưởng về lập trình hướng đối tượng hay một ngôn ngữ hướng đối tượng.
Bạn thấy đấy, cho đến thời điểm đó, chúng tôi đã viết cái mà chúng tôi gọi là mã thủ tục.
Điều đó có nghĩa là nếu chúng ta xem xét một tệp Python, chẳng hạn, một mã thủ tục giống như một
thủ tục.
Chúng tôi chỉ đơn giản có các dòng một, giả sử 100, và chúng tôi chỉ đi từ đầu dòng đến cuối
dòng.
Chúng ta đã có các điều kiện, có thể là các vòng lặp, nhưng mọi thứ phải làm thế này, làm thế kia.
Đó là chúng tôi nói với máy, Này, chỉ cần làm chính xác cái này.
Tôi sắp nói với bạn khi giới thiệu các mô hình hướng đối tượng.
Điều này đã thay đổi một chút.
Chúng tôi bắt đầu nói, Này, hãy lập mô hình một cái gì đó trong mã của chúng tôi đại diện cho một đối tượng thế giới thực.
Ví dụ: nếu tôi chuẩn bị viết mã một chiếc ô tô, tôi sẽ tạo một đối tượng ô tô có dữ liệu về màu sắc của nó, loại
động cơ, số chỗ ngồi của nó, ngoài ra còn có các hành động như các phương thức mà chúng tôi có
thể thực hiện trên đó, chẳng hạn như ô tô có thể đi tới, nó có thể đi lùi, nó có thể mở cửa.
Và thay vì có từng dòng mã thủ tục này, chúng ta có thể nghĩ về mô hình, bản thiết kế trong thế giới
thực, bởi vì là con người, chúng ta sắp xếp mọi thứ.
Hãy nghĩ về một căn phòng.
Hãy nghĩ về một nhà máy bằng cách sắp xếp mọi thứ và có các nhóm khác nhau ở một địa điểm cụ thể, làm việc
cùng nhau.
Đó là cách tốt hơn để suy nghĩ cũng như điều hành mọi thứ.
Vậy điều này sẽ trông như thế nào trong Python?
Chà, Python là một ngôn ngữ hướng đối tượng hoặc có thể như vậy, có nghĩa là nó có thể hỗ trợ các ý tưởng
mở.
Ý tưởng này về các đối tượng và mô hình hóa và chúng tôi đã thấy điều này khi chúng tôi sử dụng kiểu, chúng tôi thấy rằng mọi thứ
đều là một đối tượng bởi vì chúng tôi sử dụng từ khóa lớp này.
Nhưng từ khóa lớp này trong Python là gì?
Tôi có thể tạo dữ liệu của riêng mình, nhập lớp của riêng mình bằng cách chỉ cần nói lớp và sau đó tôi có thể đặt tên cho nó bất cứ
thứ gì tôi muốn.
Hãy nói rằng lớp học.
To lớn.
Sự vật.
Bây giờ ngay lập tức.
Bạn thấy ở đây rằng quy ước đặt tên khác với những gì chúng ta đã thấy trước đây.
Chúng tôi sẽ đảm bảo rằng nó được viết hoa, đây là tiêu chuẩn.
Chúng tôi muốn cho các lập trình viên biết rằng đây sẽ là một lớp học và chúng tôi không sử dụng trường hợp con rắn.
Chúng tôi đang sử dụng cái mà chúng tôi gọi là trường hợp lạc đà, mỗi từ mới là một chữ cái viết hoa.
Và sau đó ở đây chúng tôi sử dụng dấu hai chấm, và sau đó ở đây chúng tôi viết mã của chúng tôi.
Bây giờ, tôi sẽ không viết mã ngay bây giờ.
Tôi sẽ vượt qua.
Nhưng ngay tại đó, tôi vừa tạo một lớp mới để nếu tôi làm vậy, chẳng hạn.
Loại hình.
Đối tượng lớn và tôi nhấp vào Chạy.
Vâng, tôi vẫn nhận được loại vì ngay bây giờ những gì chúng tôi đã tạo là lớp này, là một bản thiết kế,
nhưng chúng tôi chưa thực sự tạo ra đối tượng.
Tôi biết từ ngữ có thể gây nhầm lẫn, nhưng hãy chịu đựng với tôi.
Tôi sẽ giải thích điều này.
Bây giờ chúng ta có thể tạo, giả sử, đối tượng một bằng đối tượng lớn và sau đó chạy lớp này.
Vì vậy, nếu tôi nhập đối tượng ở đây, đối tượng một và tôi nhấp vào chạy.
Tôi nhận lớp.
Vật thể lớn.
Bạn có thể bỏ qua phần chính ở đây vì chúng ta sẽ nói về nó sau.
Nhưng bạn thấy ở đây rằng tôi vừa tạo đối tượng của riêng mình.
Bây giờ, chúng ta hãy nghĩ về những gì vừa xảy ra ở đây, bởi vì nó là rất nhiều điều để hiểu.
Bạn thấy một chương trình hướng đối tượng, có ý tưởng về một lớp và một đối tượng.
Bây giờ, một lớp học là thế này.
Đó là bản thiết kế.
Bản thiết kế của những gì chúng tôi muốn tạo.
Thuộc tính cơ bản là thuộc tính mà lớp của chúng ta có là gì?
Một số phương thức hoặc hành động cơ bản mà lớp của chúng ta có thể thực hiện là gì?
Và sau đó từ bản thiết kế này, tôi có thể tạo nhiều lần các đối tượng khác nhau bằng cách sử dụng nó làm
khối xây dựng.
Vì vậy, bản thiết kế này là những gì chúng ta gọi là một lớp.
Cái mà chúng ta xác định bằng từ khóa lớp, và lớp này có thể được khởi tạo.
Đó là hành động tạo các thể hiện khác nhau.
Và những trường hợp này là gì?
Đây là tất cả các đối tượng.
Bây giờ việc đặt tên ở đây là thứ mà bạn sẽ phải làm quen.
Và tất cả các ngôn ngữ lập trình hướng đối tượng đều có ngôn ngữ này.
Vì vậy, bạn sẽ chỉ cần hiểu những gì ai đó nói.
Này, tôi vừa tạo một lớp học.
Nó có nghĩa là, này, tôi vừa tạo một thể hiện mới, một đối tượng mới.
Vì vậy, nhìn vào sơ đồ này, chúng ta hãy quay lại đoạn mã mà chúng ta vừa viết.
Chúng tôi đã tạo ở đây một lớp học hoặc một bản thiết kế.
Và sau đó ở đây dấu ngoặc kép này là chúng ta khởi tạo lớp và nói, Này lớp, hãy sử dụng bất cứ thứ gì bạn có mã
ở đây và khởi tạo nó và tạo một đối tượng mới.
Vì vậy, chúng tôi đang tạo một đối tượng mới bằng cách khởi tạo lớp này.
Và đây chính xác là những gì chúng ta đang làm với một cái gì đó giống như một danh sách, phải không?
Tôi có thể tạo lặp đi lặp lại nhiều danh sách.
Và mỗi khi tôi tạo danh sách, tôi có quyền truy cập vào tất cả các phương thức này và đôi khi cả các thuộc
tính mà tôi có thể sử dụng.
Và bằng cách này, tôi tiết kiệm được rất nhiều thời gian thay vì phải tự mình viết mã.
Và theo cách tương tự, tôi có thể tạo nhiều đối tượng ở đây.
Chủ đề.
Đối tượng ba.
Chỉ vậy thôi.
Và bây giờ tôi có ba đối tượng khác nhau mà tôi có thể sử dụng dựa trên bản thiết kế này.
Bây giờ, bản thiết kế hiện tại không có bất cứ thứ gì vì tốt, tôi có thể thêm mã ở đây sau và chúng ta sẽ làm
điều đó trong video tiếp theo.
Nhưng vẻ đẹp là chúng ta hãy nghĩ về hiệu quả ở đây.
Bạn thấy bản thiết kế.
Lớp sẽ được lưu trữ trong bộ nhớ.
Vì vậy, trình thông dịch Python sẽ nói, này, đối tượng lớn sẽ là bản thiết kế cho việc này.
Vì vậy, tôi sẽ lưu trữ tất cả mã đó trong bộ nhớ.
Nhưng mỗi khi tôi tạo một đối tượng, tôi không phải viết lại mã hoặc làm bất cứ điều gì tương tự.
Tôi có thể đơn giản nói, Này, hãy nhớ đến nơi có đối tượng lớn và chỉ cần chạy mã đó để một lần nữa chúng ta giữ
cho mã của mình khô ráo.
Chúng tôi có một nơi cho phép chúng tôi khởi tạo mã của chúng tôi thành các đối tượng.
Hãy cùng nghỉ ngơi và mở rộng về lớp học này trong video tiếp theo.