﻿1
00:00:04,490 --> 00:00:05,690
‫Xin chào và chào mừng.

2
00:00:05,690 --> 00:00:11,630
‫Trong bài giảng này, chúng ta sẽ học về các hàm không nằm trong bản thiết kế cấp, mà

3
00:00:11,630 --> 00:00:14,300
‫trên một lớp bản thiết kế cụ thể.

4
00:00:14,300 --> 00:00:20,120
‫Chúng được gọi là các hàm thành viên và hoàn toàn quan trọng đối với lập trình hướng đối tượng.

5
00:00:20,120 --> 00:00:22,700
‫Hãy đi sâu vào và xem chúng hoạt động như thế nào.

6
00:00:23,150 --> 00:00:31,430
‫Vì vậy, trong hàm sinh sản của chúng tôi, trong bản thiết kế mức, chúng tôi có một tải các nút ở đây liên

7
00:00:31,430 --> 00:00:36,830
‫quan đến việc thêm xung, nhận hướng của xung và nhận thành phần lưới tĩnh.

8
00:00:36,920 --> 00:00:43,610
‫Tất cả các nút này đều sử dụng phiên bản đạn BP chuyên sâu.

9
00:00:43,610 --> 00:00:50,690
‫Sẽ thật tuyệt nếu chúng ta có thể lấy tất cả mã này và chuyển nó vào đường đạn BP để mã

10
00:00:50,690 --> 00:00:55,130
‫xử lý dữ liệu đó sống với chính dữ liệu đó phải không?

11
00:00:55,280 --> 00:00:59,300
‫Đó là toàn bộ điểm của lập trình hướng đối tượng.

12
00:00:59,300 --> 00:01:07,040
‫Vì vậy, chúng ta có thể định nghĩa lập trình hướng đối tượng là các hàm sống với dữ liệu mà chúng thao tác.

13
00:01:07,400 --> 00:01:09,080
‫Vì vậy, làm thế nào để điều này hoạt động?

14
00:01:09,080 --> 00:01:13,520
‫Làm thế nào chúng ta có thể tạo các chức năng trên các trường hợp cụ thể của sự vật?

15
00:01:13,940 --> 00:01:20,420
‫Chà, một cách chúng ta có thể làm điều này là mở lớp đạn BP của chúng ta và đảm bảo rằng chúng ta nhấp vào mở

16
00:01:20,420 --> 00:01:27,020
‫trình chỉnh sửa bản thiết kế đầy đủ là bạn có thể thấy rằng trong trình chỉnh sửa bản thiết kế đầy đủ này có một ngăn

17
00:01:27,020 --> 00:01:35,180
‫bản thiết kế của tôi và một phần chức năng, vì vậy chúng tôi có thể nhấn vào mũi tên dấu cộng ở đây để tạo một chức năng mới trên lớp dự án

18
00:01:35,330 --> 00:01:35,810
‫BP.

19
00:01:35,810 --> 00:01:41,960
‫Và tôi sẽ đặt tên cho chức năng này, in tên của bạn và điều này sẽ in tên của bạn.

20
00:01:41,960 --> 00:01:44,150
‫Chức năng chỉ nên làm điều đó.

21
00:01:44,570 --> 00:01:49,910
‫Bạn có thể thấy rằng chúng tôi có một nút bắt đầu thực thi chức năng này để chúng tôi có thể

22
00:01:49,910 --> 00:01:52,460
‫rút chốt thực thi của nó và nhập chuỗi in.

23
00:01:52,460 --> 00:01:53,810
‫Vì vậy, nó sẽ được in ra.

24
00:01:53,810 --> 00:01:54,380
‫Xin chào.

25
00:01:54,380 --> 00:01:57,200
‫Không chính xác tên của chức năng này, phải không?

26
00:01:57,200 --> 00:01:59,390
‫Nhưng chúng tôi sẽ sắp xếp điều đó chỉ sau một giây.

27
00:01:59,690 --> 00:02:04,130
‫Vì vậy, những gì chúng tôi có ở đây được gọi là một chức năng thành viên.

28
00:02:04,130 --> 00:02:12,020
‫Một hàm thành viên là một hàm trên một lớp luôn được gọi trên một thể hiện cụ thể của một lớp.

29
00:02:12,020 --> 00:02:18,320
‫Vì vậy, bạn không cần nói, tôi sẽ gọi in tên bạn trên tất cả các đạn BP.

30
00:02:18,320 --> 00:02:25,010
‫Bạn phải nói rằng, tôi muốn gọi, in tên bạn trên quả đạn BP số một, hoặc quả đạn BP

31
00:02:25,010 --> 00:02:26,720
‫vừa được tạo ra.

32
00:02:26,720 --> 00:02:36,650
‫Vì vậy, nếu chúng ta đi đến bản thiết kế cấp độ của mình, những gì bạn sẽ phải làm là lấy tham chiếu

33
00:02:36,650 --> 00:02:38,780
‫từ đạn BP sinh ra.

34
00:02:39,020 --> 00:02:48,050
‫Và từ tham chiếu đó, bạn có thể gọi in tên của mình và bạn có thể thấy nó tự động kết nối với

35
00:02:48,050 --> 00:02:51,920
‫một nút đầu vào đặc biệt có tên Target.

36
00:02:51,920 --> 00:02:54,410
‫Và rõ ràng là bạn cũng phải nối các chốt thực thi của mình.

37
00:02:54,410 --> 00:02:58,580
‫Tôi sẽ kết nối nó để xảy ra sau khi quảng cáo thúc giục.

38
00:02:58,580 --> 00:03:07,370
‫Nhưng điều thú vị về nút đầu vào mục tiêu đặc biệt này là nếu bạn đi tới đường đạn BP, bạn sẽ thấy

39
00:03:07,370 --> 00:03:08,750
‫bản in đó.

40
00:03:08,750 --> 00:03:12,830
‫Tên của bạn không có nút đầu vào như vậy.

41
00:03:12,830 --> 00:03:14,750
‫Vậy điều gì đang xảy ra ở đây?

42
00:03:14,990 --> 00:03:24,230
‫Rõ ràng, bất kỳ hàm thành viên nào cũng có một tham số là mục tiêu hiện tại của nó hoặc phiên bản hiện tại.

43
00:03:24,560 --> 00:03:32,030
‫Và bạn có thể nắm bắt điều này bằng cách nhấp chuột phải vào biểu đồ sự kiện kế hoạch chi tiết và tự nhập.

44
00:03:32,390 --> 00:03:37,910
‫Và bạn có thể thấy có một nút được gọi là get tham chiếu đến self và nó chỉ tạo ra một nút self như

45
00:03:37,910 --> 00:03:38,540
‫thế này.

46
00:03:38,540 --> 00:03:45,980
‫Và sau đó, bạn có thể sử dụng tham chiếu đối tượng tự này để nắm giữ bất kỳ thuộc tính nào trên đối tượng cụ thể

47
00:03:45,980 --> 00:03:46,370
‫này.

48
00:03:46,370 --> 00:03:53,270
‫Vì vậy, nếu chúng tôi muốn nắm được tên của đạn BP của mình, bạn có thể rút ra khỏi tự tham chiếu và

49
00:03:53,270 --> 00:03:57,110
‫nhập tên hiển thị nhận, mà chúng tôi đã thực hiện trước đây.

50
00:03:57,110 --> 00:04:01,250
‫Và sau đó bạn có thể nối tên hiển thị vào chuỗi in của chúng tôi.

51
00:04:01,250 --> 00:04:09,890
‫Vì vậy, bây giờ khi chúng ta chơi và chúng ta bắn một đường đạn mới, bạn có thể thấy nó in tên của đường đạn và

52
00:04:10,310 --> 00:04:17,210
‫bạn có thể thấy đối với mọi đường đạn mới mà tôi tạo, tên là một tên khác vì bản thân

53
00:04:17,210 --> 00:04:23,750
‫được gọi bởi thành viên chức năng là một bản thân khác nhau là một đường đạn khác nhau.

54
00:04:23,750 --> 00:04:32,390
‫Vì vậy, chúng tôi đã biết rằng self là một nút có sẵn bên trong các hàm thành viên luôn trỏ đến phiên bản hiện tại

55
00:04:32,390 --> 00:04:35,270
‫cụ thể mà chúng tôi đang sử dụng.

56
00:04:35,270 --> 00:04:40,190
‫Vì vậy, toàn bộ điểm đầu tiên của việc xem xét các hàm thành viên, lý do chúng tôi bắt đầu

57
00:04:40,190 --> 00:04:45,680
‫là vì các nút này trong bản thiết kế cấp, nơi chúng tôi lấy lưới tĩnh, chúng tôi nhận được vectơ chuyển tiếp và

58
00:04:45,680 --> 00:04:48,260
‫sau đó chúng tôi thêm xung vào các nút này.

59
00:04:48,560 --> 00:04:51,860
‫Những người này cảm thấy như họ nên sống trên đường đạn BP.

60
00:04:51,860 --> 00:04:55,310
‫Và đó là điều tôi muốn thách thức bạn làm.

61
00:04:55,310 --> 00:04:58,730
‫Vì vậy, đây là một thử thách đã phát triển một chút, nhưng chúng ta đang đi đến cuối phần.

62
00:04:58,730 --> 00:05:01,730
‫Vì vậy, tôi sẽ hướng dẫn bạn từng bước một.

63
00:05:02,120 --> 00:05:03,950
‫Vì vậy, chúng tôi sẽ tạo một chức năng khởi chạy.

64
00:05:04,060 --> 00:05:05,800
‫Shin trên đường đạn BP.

65
00:05:05,800 --> 00:05:07,810
‫Vì vậy, hãy tạo nó trên đường đạn BP.

66
00:05:07,810 --> 00:05:08,890
‫Chuyển đến nút dấu cộng đó.

67
00:05:08,890 --> 00:05:11,080
‫Thêm một cái mới, đặt tên cho nó, khởi chạy.

68
00:05:11,440 --> 00:05:18,700
‫Sau đó, cắt và dán các nút từ bản thiết kế cấp vào chức năng mới được tạo này của bạn và đảm

69
00:05:18,700 --> 00:05:22,090
‫bảo bạn kết nối các chốt thực thi và v.v.

70
00:05:22,510 --> 00:05:28,000
‫Bây giờ bạn sẽ thử và biên dịch điều này mà chúng tôi không làm điều này thường xuyên trong các bản thiết kế,

71
00:05:28,000 --> 00:05:34,390
‫nhưng việc biên dịch chỉ cho phép bạn kiểm tra chính tả về cơ bản mã của mình và đảm bảo rằng không có bất kỳ lỗi nào mà

72
00:05:34,390 --> 00:05:36,850
‫trình biên dịch Bản thiết kế có thể thấy trước.

73
00:05:36,850 --> 00:05:43,660
‫Vì vậy, cách bạn làm điều này là bạn đi đến nút ở trên cùng bên trái và bạn nhấn biên dịch và nếu có bất kỳ lỗi

74
00:05:43,660 --> 00:05:48,580
‫nào, chúng sẽ hiển thị ở dưới cùng trong ngăn nhỏ được gọi là kết quả trình biên dịch.

75
00:05:48,580 --> 00:05:53,530
‫Bạn có thể thấy tôi đã biên dịch thành công, nhưng bất kỳ lỗi nào sẽ hiển thị ở đây và đôi khi bạn

76
00:05:53,530 --> 00:05:57,250
‫sẽ nhận được một chút màu đỏ trên một nút để cho biết lỗi nằm ở đâu.

77
00:05:57,790 --> 00:06:03,730
‫Và tôi muốn xem liệu bạn có thể thử và hiểu lỗi đó đang nói gì không và thử và sửa lỗi

78
00:06:03,730 --> 00:06:07,480
‫bằng cách sử dụng nút tự mới mà chúng ta đã tìm hiểu.

79
00:06:07,930 --> 00:06:15,850
‫Và sau đó, bạn cần tiếp tục và gọi hàm đó từ bản thiết kế cấp bằng cách kéo ra khỏi phiên bản giống như chúng ta

80
00:06:15,850 --> 00:06:18,130
‫đã làm cho bản in của mình.

81
00:06:18,130 --> 00:06:24,760
‫Hãy kéo nút tự của bạn ra khỏi phiên bản của đường đạn mới được tạo từ nút sinh sản và gọi

82
00:06:24,760 --> 00:06:25,960
‫hàm khởi chạy.

83
00:06:26,200 --> 00:06:28,360
‫Tạm dừng video và tiếp tục.

84
00:06:31,400 --> 00:06:32,000
‫Được chứ.

85
00:06:32,000 --> 00:06:32,890
‫Chào mừng trở lại.

86
00:06:32,900 --> 00:06:39,320
‫Vì vậy, tôi sẽ xem xét đường đạn BP của chúng tôi, nhấn vào nút dấu cộng bên cạnh các chức năng

87
00:06:39,320 --> 00:06:47,090
‫trong ngăn thiết kế của tôi và gõ khởi chạy để đặt tên cho chức năng mà chúng ta hãy quay lại bản thiết kế cấp của

88
00:06:47,090 --> 00:06:51,740
‫chúng tôi, cắt bỏ các nút và đi vào Đạn BP và dán chúng vào.

89
00:06:52,010 --> 00:06:58,550
‫Bây giờ tôi phải kết nối thực thi từ khi khởi chạy để thêm xung và bây giờ tôi

90
00:06:58,550 --> 00:07:04,850
‫sẽ nhấn, biên dịch và bạn thấy tôi gặp lỗi trên lưới tĩnh hoặc nhận nút lưới tĩnh.

91
00:07:05,060 --> 00:07:10,550
‫Và nếu bạn nhìn vào kết quả của trình biên dịch, nó cho biết nó sử dụng một mục tiêu không hợp lệ.

92
00:07:10,700 --> 00:07:15,290
‫Vì vậy, mục tiêu đầu vào này ở đây là không chính xác.

93
00:07:15,290 --> 00:07:25,040
‫Bây giờ, như tôi đã khuyên bạn nên làm là bạn có thể nhấp chuột phải và nhập vào bản thân để tham chiếu đến bản thân và sau đó

94
00:07:25,520 --> 00:07:28,460
‫đưa bản thân đó vào mục tiêu thay thế.

95
00:07:28,730 --> 00:07:34,490
‫Bây giờ nếu bạn nhấn biên dịch một lần nữa, bạn có thể thấy lỗi đã biến mất và

96
00:07:34,490 --> 00:07:43,550
‫nó đã được biên dịch thành công vì những gì đang xảy ra là giờ đây nó có thể lấy thành phần lưới tĩnh từ đường đạn hiện tại mà

97
00:07:43,550 --> 00:07:46,010
‫chức năng khởi chạy này đang được gọi.

98
00:07:46,490 --> 00:07:56,060
‫Vì vậy, nếu chúng ta quay lại bản thiết kế cấp của mình ngay bây giờ, chúng ta có thể lấy chân ra từ tác nhân sinh sản của mình và chúng ta có

99
00:07:56,060 --> 00:07:59,930
‫thể nhập vào khởi chạy để gọi hàm khởi chạy của chúng tôi.

100
00:07:59,930 --> 00:08:06,080
‫Bạn có thể thấy chốt thực thi đã được tự động nối cho tôi và sau đó thoát ra sau khi chức năng khởi

101
00:08:06,080 --> 00:08:12,500
‫chạy, chúng tôi có thể kết nối chức năng in tên của bạn nếu chúng tôi muốn, mặc dù điều đó chỉ dành cho mục đích

102
00:08:12,500 --> 00:08:18,560
‫gỡ lỗi và trình diễn và nếu bạn kiểm tra nó, bạn có thể thấy rằng nó vẫn đang khởi chạy thành công.

103
00:08:18,590 --> 00:08:24,620
‫Ngoại trừ bây giờ là mã đề cập đến việc phóng mạng trên chính đường đạn.

104
00:08:24,620 --> 00:08:25,250
‫Công cụ tuyệt vời.

105
00:08:25,250 --> 00:08:30,980
‫Chúng ta đã học về một trong những khái niệm cốt lõi của lập trình hướng đối tượng trong các hàm thành viên của bài giảng này.

106
00:08:30,980 --> 00:08:32,780
‫Tôi sẽ gặp bạn trong một trong những tiếp theo.

