1 00:00:00,450 --> 00:00:01,290 ‫Chào mừng trở lại. 2 00:00:01,320 --> 00:00:03,450 ‫Trong video này, chúng ta sẽ nói về cấu trúc. 3 00:00:03,450 --> 00:00:11,430 ‫Và cấu trúc rất giống với các lớp, nhưng các lớp là kiểu tham chiếu và cấu trúc là kiểu giá trị, có nghĩa là 4 00:00:11,430 --> 00:00:16,350 ‫nếu bạn tạo một đối tượng của một lớp, nó không thể chứa gì cả. 5 00:00:16,350 --> 00:00:19,800 ‫Vì vậy, nó có thể trống, nhưng một cấu trúc phải có một giá trị. 6 00:00:19,950 --> 00:00:26,190 ‫Hãy tạo một trò chơi có tên cấu trúc, vì vậy bạn sử dụng từ khóa struct và sau đó bạn đặt tên cho nó. 7 00:00:26,190 --> 00:00:29,280 ‫Vì vậy, nó rất giống với một lớp từ những gì bạn có thể thấy. 8 00:00:29,280 --> 00:00:33,690 ‫Vì vậy, bạn có tên này ở đây và sau đó bạn có thể tiếp tục và tạo các biến tại đây. 9 00:00:33,690 --> 00:00:39,510 ‫Vì vậy, tôi sẽ tạo một cái được gọi là tên, sau đó tôi sẽ tạo một 10 00:00:40,230 --> 00:00:44,760 ‫cái gọi là nhà phát triển và một cái là xếp hạng. 11 00:00:44,850 --> 00:00:50,970 ‫Vậy trò chơi này được đánh giá như thế nào và sau đó là ngày phát hành chuỗi công khai? 12 00:00:50,970 --> 00:00:52,410 ‫Vậy nó được phát hành khi nào? 13 00:00:52,680 --> 00:00:54,360 ‫Vì vậy, đó là một cấu trúc đơn giản. 14 00:00:54,360 --> 00:01:02,460 ‫Bây giờ chúng ta có thể tiếp tục và tạo một đối tượng của cấu trúc đó để chúng ta có thể tiếp tục và nói, được rồi, 15 00:01:02,460 --> 00:01:04,560 ‫trò chơi, trò chơi giống như vậy. 16 00:01:04,560 --> 00:01:06,030 ‫Vì vậy, bây giờ chúng tôi có trò chơi này. 17 00:01:06,030 --> 00:01:11,880 ‫Nhưng để sử dụng trò chơi đó, chúng ta cần phải đi trước và chỉ định nó. 18 00:01:11,880 --> 00:01:14,190 ‫Vì vậy, chúng tôi cần đặc tả của trò chơi. 19 00:01:14,190 --> 00:01:22,530 ‫Một, ví dụ, chúng ta cần đặt tên và giả sử đó là Pokémon Go, sau đó trò chơi cần phải có một 20 00:01:22,530 --> 00:01:23,640 ‫nhà phát triển. 21 00:01:24,750 --> 00:01:32,550 ‫Vì vậy, chúng tôi sẽ nói một cái gì đó giống như Niantic và sau đó Trò chơi một cần phải có xếp hạng. 22 00:01:33,250 --> 00:01:40,380 ‫Giả sử đó là 3. 5 trên năm sao và cuối cùng là ngày phát hành. 23 00:01:40,740 --> 00:01:43,770 ‫Vì vậy, bạn có thể chỉ cần thiết lập các giá trị như vậy. 24 00:01:43,770 --> 00:01:48,120 ‫Vì vậy, nó rất giống với những gì bạn sẽ làm với một lớp học, phải không? 25 00:01:48,540 --> 00:01:55,770 ‫Vì vậy, nó đã được phát hành vào năm 2016 và đó là cấu trúc trò chơi của chúng tôi mà chúng tôi có ở đây. 26 00:01:55,770 --> 00:02:00,540 ‫Bây giờ chúng ta có thể tiếp tục và ghi thông tin trò chơi lên bảng điều khiển. 27 00:02:00,540 --> 00:02:03,630 ‫Vì vậy, giả sử chúng tôi muốn viết tên của trò chơi. 28 00:02:03,630 --> 00:02:07,590 ‫Vì vậy, CW Game một. 29 00:02:09,980 --> 00:02:22,610 ‫Và tên của anh ta là và sau đó là dấu ngoặc nhọn số 0 và tên dấu chấm trò chơi hoặc thực sự là một tên trò chơi. 30 00:02:23,570 --> 00:02:29,480 ‫Vì vậy, như bạn thấy, bạn có thể tiếp tục và gọi nó là các biến để chúng ta có thể làm điều tương tự, 31 00:02:29,780 --> 00:02:30,860 ‫không chỉ với tên. 32 00:02:30,860 --> 00:02:33,200 ‫Chúng tôi có thể làm điều đó với mọi thứ khác. 33 00:02:33,210 --> 00:02:34,910 ‫Vì vậy, tôi sẽ chỉ sao chép đó. 34 00:02:35,000 --> 00:02:43,490 ‫Trò chơi một được phát triển bởi và bây giờ nó không phải là tên trò chơi, mà là nhà phát triển. 35 00:02:44,120 --> 00:02:45,800 ‫Và ở đây cũng vậy. 36 00:02:47,420 --> 00:02:50,540 ‫Xếp hạng là trò chơi của một người. 37 00:02:51,680 --> 00:02:55,580 ‫Xếp hạng là và đây là xếp hạng. 38 00:02:56,210 --> 00:03:05,960 ‫Và cuối cùng, trò chơi một đã được phát hành trong ngày phát hành lại trò chơi một. 39 00:03:08,320 --> 00:03:09,430 ‫Bây giờ chúng ta hãy chạy nó. 40 00:03:10,840 --> 00:03:17,110 ‫Điều khiển phím màu đỏ và hãy xem điều gì đang xảy ra. 41 00:03:18,800 --> 00:03:19,880 ‫Và chúng tôi là một trò chơi. 42 00:03:19,880 --> 00:03:21,440 ‫Một tên là Pokemon Go. 43 00:03:21,470 --> 00:03:23,780 ‫Trò chơi một được phát triển bởi Niantic. 44 00:03:23,960 --> 00:03:29,120 ‫Xếp hạng là 3. 5 và nó được phát hành vào ngày 1 tháng 7 năm 2016. 45 00:03:29,150 --> 00:03:29,750 ‫Được rồi. 46 00:03:29,750 --> 00:03:31,310 ‫Vì vậy mà chúng tôi đang có. 47 00:03:31,340 --> 00:03:35,030 ‫Nó rất cơ bản và rất giống với một lớp học. 48 00:03:35,030 --> 00:03:35,600 ‫Đúng. 49 00:03:36,590 --> 00:03:37,970 ‫Vậy nó khác nhau như thế nào? 50 00:03:38,000 --> 00:03:40,430 ‫Chà, còn một điều nữa mà nó không khác. 51 00:03:40,910 --> 00:03:47,270 ‫Vì vậy, tôi sẽ tạo hiển thị khoảng trống công cộng, hiển thị thông tin. 52 00:03:47,270 --> 00:03:52,070 ‫Và những gì tôi sẽ làm là tôi chỉ đơn giản là sẽ thực hiện tất cả những điều đó trong đó. 53 00:03:52,070 --> 00:03:54,770 ‫Vì vậy, nó sẽ cho tôi cái tên. 54 00:03:54,770 --> 00:03:56,750 ‫Nó sẽ cung cấp cho tôi nhà phát triển. 55 00:03:56,900 --> 00:04:00,800 ‫Nó sẽ cung cấp cho tôi xếp hạng và ngày phát hành. 56 00:04:02,000 --> 00:04:02,330 ‫Được rồi. 57 00:04:02,360 --> 00:04:09,110 ‫Bây giờ, thay vào đó, tôi có thể chỉ cần gọi phương thức hiển thị và tôi có thể làm như vậy bằng cách gọi một trò chơi 58 00:04:09,110 --> 00:04:11,570 ‫và nói, vui lòng hiển thị tất cả thông tin. 59 00:04:11,840 --> 00:04:15,860 ‫Vì vậy, bây giờ chúng ta hãy chạy lại nó và chúng ta sẽ thấy chúng ta nhận được tất cả thông tin. 60 00:04:16,190 --> 00:04:16,580 ‫Được rồi. 61 00:04:16,580 --> 00:04:18,740 ‫Vì vậy, bạn có thể tạo các biến. 62 00:04:18,740 --> 00:04:19,670 ‫Bạn có thể tạo các phương thức. 63 00:04:19,670 --> 00:04:20,520 ‫Nhưng nó khác nhau như thế nào? 64 00:04:20,540 --> 00:04:27,980 ‫Điều bạn không thể làm là bạn không thể tạo một phương thức khởi tạo. 65 00:04:28,520 --> 00:04:32,480 ‫Cấu trúc không được chứa các hàm tạo ít tham số rõ ràng. 66 00:04:32,690 --> 00:04:35,300 ‫Vì vậy, bạn không thể tạo các hàm tạo mặc định ở đây. 67 00:04:35,840 --> 00:04:38,840 ‫Sau đó, nó có thể triển khai một hoặc nhiều giao diện. 68 00:04:38,840 --> 00:04:44,930 ‫Vì vậy, bạn có thể tiếp tục và triển khai các giao diện ở đây tôi có thể làm sạch được, tôi có thể so sánh những thứ đó. 69 00:04:46,070 --> 00:04:48,950 ‫Sau đó, họ không hỗ trợ kế thừa. 70 00:04:48,950 --> 00:04:51,770 ‫Vì vậy, bạn không thể sử dụng kế thừa trên các cấu trúc. 71 00:04:51,980 --> 00:04:53,750 ‫Bạn không thể có một phương thức khởi tạo mặc định. 72 00:04:53,750 --> 00:05:01,460 ‫Như tôi đã nói, các thành viên cấu trúc không thể được chỉ định là trừu tượng, ảo hoặc được bảo vệ, vì vậy chúng có thể chỉ là một cái 73 00:05:01,460 --> 00:05:03,080 ‫gì đó giống như công khai. 74 00:05:03,080 --> 00:05:06,110 ‫Vì vậy, bạn có thể có một cấu trúc công khai hoặc bạn có thể có một cấu trúc riêng tư. 75 00:05:08,590 --> 00:05:11,320 ‫Tuy nhiên, các cấu trúc có thể có các hàm tạo được xác định. 76 00:05:11,320 --> 00:05:17,500 ‫Vì vậy, bạn có thể có một cái gì đó giống như trò chơi công cộng và sau đó ở đây bạn có tên chuỗi. 77 00:05:18,280 --> 00:05:30,790 ‫Bạn có thể có cái đó và cái đó sẽ là tên hoặc tên này là tên bằng và nhà phát triển dấu chấm này là nhà phát triển bình đẳng. 78 00:05:32,260 --> 00:05:35,200 ‫Xếp hạng sao là xếp hạng ngang nhau. 79 00:05:35,200 --> 00:05:39,640 ‫Và ngày phát hành DOT này là ngày phát hành tương đương. 80 00:05:39,670 --> 00:05:41,710 ‫Bây giờ, bạn, tất nhiên, cần phải có họ ở đây. 81 00:05:41,710 --> 00:05:50,050 ‫Nhà phát triển chuỗi, sau đó xếp hạng kép và ngày phát hành chuỗi. 82 00:05:50,980 --> 00:06:00,910 ‫Nhưng sau đó, nếu bạn, ví dụ, muốn tiếp tục và hiển thị phương thức hiển thị ở đây, thì bạn sẽ gặp lỗi 83 00:06:00,910 --> 00:06:05,690 ‫vì sử dụng trò chơi biến cục bộ chưa được gán. 84 00:06:05,710 --> 00:06:08,320 ‫Vì vậy, trò chơi một đã không được chỉ định. 85 00:06:08,320 --> 00:06:15,490 ‫Vì vậy, ngay cả khi tôi đã cố gắng, hãy nói rằng sau khi có tất cả thông tin cho đến nay, bạn thấy vẫn còn 86 00:06:15,490 --> 00:06:16,060 ‫lỗi. 87 00:06:16,060 --> 00:06:21,520 ‫Vì vậy, bạn cần phải có tất cả các thông tin khác nhau về trò chơi này để được chỉ định. 88 00:06:21,550 --> 00:06:23,380 ‫Nếu không, trò chơi này không hoạt động. 89 00:06:23,380 --> 00:06:27,490 ‫Vì vậy, ngay cả ở đây, sau khi chúng tôi có xếp hạng, chúng tôi vẫn gặp lỗi tương tự. 90 00:06:27,520 --> 00:06:30,940 ‫Chỉ sau khi chúng tôi đã gán tất cả các giá trị, thì chúng tôi mới có thể làm việc. 91 00:06:30,940 --> 00:06:36,390 ‫Vì vậy, nó hoạt động theo giá trị, không phải theo tham chiếu, giống như một lớp sẽ làm. 92 00:06:36,400 --> 00:06:37,000 ‫Đúng. 93 00:06:38,050 --> 00:06:42,760 ‫Vì vậy, nếu bạn muốn có một bản tóm tắt ngắn, StackOverflow là bạn của bạn. 94 00:06:42,760 --> 00:06:47,410 ‫Vì vậy, một bản tóm tắt ngắn gọn về sự kế thừa hỗ trợ của mỗi lớp. 95 00:06:47,410 --> 00:06:52,840 ‫Các nguyên mẫu tham chiếu của chúng tôi có thể rỗng và có bộ nhớ trên heap cho mỗi phiên bản mới. 96 00:06:52,840 --> 00:06:55,900 ‫Cấu trúc chỉ không thể hỗ trợ kế thừa. 97 00:06:55,900 --> 00:07:02,950 ‫Các kiểu giá trị của chúng ta được truyền bằng giá trị tương tự như số nguyên, sau đó không thể có tham chiếu rỗng như 98 00:07:02,950 --> 00:07:07,390 ‫bạn vừa thấy và không có bộ nhớ trên heap cho mỗi phiên bản mới. 99 00:07:07,390 --> 00:07:13,360 ‫Và cả hai đều có một phức hợp hoặc là các kiểu dữ liệu phức hợp thường được sử dụng để chứa một vài biến 100 00:07:13,360 --> 00:07:19,180 ‫có mối quan hệ logic nào đó, có thể chứa các phương thức và sự kiện và có thể hỗ trợ các giao diện. 101 00:07:20,980 --> 00:07:27,640 ‫Mặc dù Simon Stephens lập luận rằng các lớp học không phải lúc nào cũng xếp chồng lên nhau và tấn công, không phải lúc nào cũng xếp 102 00:07:27,640 --> 00:07:28,360 ‫chồng lên nhau. 103 00:07:28,690 --> 00:07:29,020 ‫Được rồi. 104 00:07:29,020 --> 00:07:34,780 ‫Và mục nhập StackOverflow này nói chung có một số thông tin khá giá trị về cấu trúc. 105 00:07:34,780 --> 00:07:37,630 ‫Vì vậy, sự khác biệt là giữa cấu trúc và lớp. 106 00:07:37,630 --> 00:07:39,880 ‫Nhưng bạn đã thấy hầu hết chúng ở đây. 107 00:07:39,880 --> 00:07:45,880 ‫Nhưng như thường lệ, tôi luôn khuyên bạn nên kiểm tra tài liệu để hiểu rõ hơn.