Bây giờ, cách tốt nhất để học là thực sự xem mã hoạt động.
Vì vậy, về lý thuyết, hãy thực sự viết mã lớp của chính chúng ta.
Tôi sẽ xóa mọi thứ và bắt đầu lại từ đầu.
Và giả sử rằng chúng tôi đang làm việc cho một công ty trò chơi, và công ty trò chơi này có một trò
chơi phù thủy mà họ muốn tạo ra, gần giống như Harry Potter.
Bây giờ, làm thế nào chúng ta có thể nghĩ về nó, một lập trình hướng đối tượng?
Chà, điều đầu tiên chúng tôi cần là chúng tôi sẽ phải có người chơi.
Đúng.
Mỗi người chơi có một nhân vật mà họ cần chơi.
Vì vậy, hãy tạo một lớp ở đây và gọi nó là trình phát.
Tính cách.
Lại.
Lưu ý quy ước đặt tên vì nó là một lớp.
Và.
Một quy tắc khác là bạn thường muốn nó ở dạng số ít, không phải số nhiều.
Vì vậy, bạn không thể nói các ký tự của người chơi bởi vì ý tôi là, đó là một bản thiết kế.
Từ bản thiết kế này, chúng ta sẽ tạo ra nhiều ký tự, nhưng chúng sẽ là các đối tượng.
Vì vậy, nhân vật người chơi, duy nhất ở số ít.
Bây giờ ở đây, tôi sẽ làm một vài điều và tôi sẽ cảnh báo bạn, điều này thoạt đầu trông có vẻ khó
hiểu, nhưng hãy chịu đựng.
Tôi sẽ giải thích nó.
Chúng ta sẽ xác định một dấu gạch dưới, gạch dưới trong đó.
Gạch dưới, gạch dưới.
Bây giờ ở đây, chúng ta sẽ nói về bản thân.
Và sau đó đặt tên cho nó.
Tên của nhân vật.
Từ đây, chúng ta sẽ làm Colin một lần nữa.
Và chỉ cần nói tên tự chấm.
Bằng tên.
Oh Boy.
Chuyện gì vừa xảy ra ở đây?
Một lần nữa, tôi sẽ tạm dừng giải thích điều này làm gì và chỉ viết thêm một vài dòng mã để nó có
ý nghĩa hơn một chút.
Tôi sẽ viết một phương thức khác ở đây và tôi sẽ định nghĩa, giả sử, một phương thức chạy mà mỗi người chơi
có thể chạy.
Và ở đây, tôi sẽ lại một lần nữa có cái phường tự kỳ lạ này và sau đó đơn giản là bên trong đây, hãy nói bản in.
Chạy.
Được rồi, tôi vừa tạo lớp này.
Nó vẫn còn hơi khó hiểu.
Chúng tôi không thực sự biết cái này trong đó là gì, cái tôi là gì, và cái nhìn hoàn toàn mới này.
Nhưng chúng ta hãy bỏ qua điều đó trong một giây và nói đơn giản.
Người chơi.
Một là nhân vật của người chơi bình đẳng và khởi tạo người chơi đó.
Để có thể.
Chúng tôi có thể in trình phát và xem có gì xảy ra với trình phát này.
Nếu tôi bấm Chạy.
Được rồi, tôi hiểu rồi.
Đó là một loại không khí.
Nó cho biết nó thiếu một tên đối số vị trí bắt buộc.
Được rồi.
Chúng ta hãy nghỉ ngơi ở đây và xem những gì đang xảy ra ở đây.
Bạn thấy điều này, innit?
Phương pháp là một phương pháp đặc biệt.
Bạn thấy hai gạch dưới đây.
Đây được gọi là phương pháp dunder hoặc phương pháp ma thuật.
Và chúng tôi sẽ có một video nói riêng về điều này.
Nhưng khi chúng tôi đang xây dựng một lớp học, bạn thường thấy điều này ở trên cùng.
Và đây là cái thường được gọi là phương thức khởi tạo hoặc phương thức init.
Và điều này sẽ tự động được gọi bất kỳ lúc nào chúng tôi khởi tạo.
Hãy nhớ Instantiate có nghĩa là chúng ta đang gọi lớp để tạo một đối tượng.
Vì vậy, khi tôi làm điều này, nó sẽ tự động chạy bất cứ thứ gì có trong khối mã này.
Vì vậy, khi tôi chạy điều này, bạn thấy rằng tôi đang gặp lỗi trực tuyến chín ngay tại đây, trực tuyến.
Chín.
Và khi tôi cố gắng khởi tạo nhân vật người chơi.
Nó chạy trong đó và sau đó nó cố gắng tự làm.
Tên tương đương với tên.
Nhưng vấn đề là tôi không đặt tên đối số cho nó.
Và đó là bởi vì khi chúng ta gọi trong nó, chúng ta chấp nhận bất cứ thứ gì đứng sau self làm tham số.
Tên.
Vì vậy, chúng ta cần đặt cho nó một cái tên của nhân vật này.
Vì vậy, giả sử tên là Cindy.
Nếu tôi bấm Chạy ở đây.
Được rồi.
Có vẻ như tôi có một nhân vật người chơi.
Và trên thực tế, nó thậm chí còn cho tôi thấy rằng đó là một đối tượng tại vị trí bộ nhớ này.
Vì vậy, trên máy tính của chúng tôi, đây là nơi đặt trình phát nhân vật người chơi.
Rất tuyệt.
Nhưng từ khóa tự này là gì và mã này trực tuyến để làm gì?
Đây là một cách để chúng tôi xác định.
Chà, bản thân tự ám chỉ nhân vật người chơi.
Nó nói rằng, hey, điều này sẽ đề cập đến nhân vật người chơi này
mà chúng tôi sẽ tạo người chơi một và tôi muốn tên tự chấm bằng bất kỳ tên tham số nào.
Vì vậy, nếu tôi đặt tên dấu chấm của trình phát ở đây và tôi nhấp vào chạy.
Tôi hiểu Cindy.
Và tại sao lại là Cindy?
Chà, vì tôi đã cho nó là ký tự trình phát tham số.
Và khi tôi khởi tạo nó, tôi đã truyền tham số tên.
Tham số mặc định là self khi tôi thực hiện trong đó và trong các lớp, bạn thấy ở đây rằng tham số mặc định luôn
là tham số đầu tiên khi chúng ta định nghĩa một phương thức là self.
Và bây giờ tôi đặt tên cho tên tự dấu chấm.
Điều gì sẽ xảy ra nếu tôi xóa cái này ở đây và tôi nhấp vào chạy?
Bạn thấy rằng nó cho biết đối tượng không có tên thuộc tính.
Bởi vì để tôi nói, Này, tôi muốn người chơi có tên, tôi cần phải tự nói dấu chấm.
Bởi vì bản thân đề cập đến người chơi một.
Vì vậy, nếu bạn nhớ khi chúng tôi có một danh sách, chúng tôi phải làm dấu chấm và sau đó chúng tôi sẽ nói thêm.
Chà, ai đó đã viết mã nối thêm này và trong mã nối thêm, nó sẽ tự nói dấu chấm.
Giả sử thêm vào danh sách và tự đề cập đến bất kỳ thứ gì ở bên trái dấu chấm.
Vì vậy, theo cách này, nó cho phép chúng ta tham chiếu đến một thứ gì đó chưa được tạo ra trong trường hợp này.
Người chơi một Và hãy cho họ biết rằng, này, khi nó được tạo, khi chúng tôi khởi tạo, thì
tôi muốn bạn đảm bảo rằng người chơi một có thuộc tính tên này để nếu tôi tạo một người chơi khác và người chơi Tom sẽ trở
thành người chơi thứ hai.
Nếu tôi in trình phát thành tên và tôi bấm chạy.
Tôi có hai cầu thủ khác nhau với hai cái tên khác nhau.
Tôi đã có thể sử dụng cùng một đoạn mã nhưng có các giá trị khác nhau vì bản thân, mỗi khi tôi khởi tạo mã này đề
cập đến người chơi lần đầu tiên một, sau đó lần thứ hai đầu tiên người chơi thứ hai.
Bây giờ bản thân là một trong những thứ thực sự, thực sự khó hiểu.
Và bạn có thể cần xem video này một vài lần, nhưng chìa khóa ở đây phải được hiển thị rõ ràng cho bạn.
Đó là, tôi chỉ có thể viết mã một lần.
Hãy nhớ nguyên tắc của chúng tôi lái xe?
Đừng tự biên tự diễn.
Và tôi có thể làm cho nó động bằng cách nói rằng dữ liệu mà chúng tôi sẽ tạo cho đối tượng này sẽ động và
nó sẽ thay đổi dựa trên những gì chúng tôi cung cấp cho nó.
Vì vậy, tôi có thể tạo ra các cầu thủ khác nhau với các thuộc tính khác nhau.
Nhưng vẫn sử dụng cùng một mã.
Bây giờ tôi có thể có nhiều thứ ở đây.
Tôi có thể có H chẳng hạn, và một lần nữa tôi có thể nói tự h bằng H, và sau đó Cindy sẽ phải
vượt qua, giả sử 44 và Thomas 21.
Vì vậy, ở đây một lần nữa, nếu tôi già đi.
Chúng sẽ có các thuộc tính khác nhau.
Vì vậy, hãy nhớ rằng, đây là các thuộc tính hoặc thuộc tính mà các đối tượng này có và bạn có thể truy cập chúng bằng cách thực hiện
ký hiệu dấu chấm và sau đó truy cập vào chính thuộc tính đó.
Bạn thấy rằng tôi không có bất kỳ dấu ngoặc nào ở đây bởi vì nó không phải là một phương pháp, nó không thực hiện hành động.
Nó chỉ đơn giản là nói, Này, tôi muốn truy cập thuộc tính này.
Nếu tôi chấm ở đây, người chỉnh sửa của tôi sẽ thực sự cho tôi biết và chúng tôi sẽ có biểu tượng cho, này, bạn có quyền
truy cập vào thuộc tính, tuổi và tên.
Và trên thực tế, tôi cũng có quyền truy cập để chạy phương thức để nếu tôi nhấp vào Chạy.
Hãy nhớ rằng, chạy là một phương pháp.
Vì vậy, tôi nhận được phương thức liên kết này, nhưng nó không in bất cứ thứ gì, nó không thực hiện hành động.
Vì vậy, chúng ta phải thêm một lần nữa các dấu ngoặc.
Đánh, chạy.
Và nhìn vào đó.
Tôi có thể chạy.
Sau đó, tôi không nhận được.
Sau đó 21.
Tại sao chúng tôi nhận được điều này?
Không có?
Vì hãy nhớ rằng, đây là một hàm không trả về bất cứ thứ gì.
Khi một hàm không trả về bất cứ thứ gì, chúng ta sẽ nhận được gì?
Chúng tôi không nhận được gì.
Vì vậy, có lẽ tôi chỉ có thể nói hoàn thành xong.
Nếu tôi bấm Chạy.
Của bạn đây.
Chúng tôi đã chạy xong 21.
Bây giờ, một điều cuối cùng trước khi tôi kết thúc video này.
Điều thú vị ở đây là nếu tôi chơi một người.
Và sau đó người chơi hai và tôi in cái này và tôi nhấp vào Chạy.
Bạn sẽ thấy rằng tôi nhận được nhân vật người chơi.
Nhưng đối tượng của mỗi đối tượng này, người chơi một và người chơi hai ở vị trí bộ nhớ khác nhau.
Vì vậy, tôi có thể sử dụng một đoạn mã, một bản thiết kế để tạo nhiều người chơi.
Nhưng những người chơi này không giống nhau.
Chúng được tạo ra từ cùng một bản thiết kế, nhưng chúng sống ở những nơi khác nhau trong bộ nhớ.
Và điều đó có ý nghĩa, phải không?
Chúng tôi không muốn Tom và Cindy là cùng một người chơi.
Họ là hai người chơi khác nhau.
Vì vậy, bằng cách này, chúng tôi có thể giữ mọi thứ an toàn.
Và bất cứ thứ gì tôi thêm vào Người chơi hai, chẳng hạn, giả sử Người chơi hai giờ có thể tấn công.
Và tấn công sẽ chỉ là một thuộc tính sẽ là 50.
Bây giờ, nếu tôi không tấn công ở đây, bạn thấy rằng người chơi hai đã.
Tấn công.
Nhưng nếu tôi chơi hoặc muốn tấn công.
Tôi sẽ có được một không khí.
Đối tượng không có thuộc tính.
Tấn công.
Tôi hy vọng bạn bắt đầu thấy sức mạnh của các lớp học.
Mặc dù có thể khó hiểu lúc đầu.
Sức mạnh trở nên rõ ràng khi chúng ta có thể tạo ra bản thiết kế này mà bây giờ chúng ta có thể sử
dụng lặp đi lặp lại để tạo ra các đối tượng của riêng mình.
Hãy cùng khám phá thêm trong video tiếp theo.