‫Chào mừng trở lại.
‫Trong video này, chúng ta sẽ tiếp tục với các thuộc tính và setters và getters.
‫Chúng tôi đã bắt đầu ở video cuối cùng, nơi chúng tôi xem xét bộ định tuyến và bộ định vị và bây giờ chúng tôi sẽ sử
‫dụng cùng một mã và chúng tôi sẽ mở rộng nó một chút.
‫Vì vậy, chúng tôi đã thấy rằng chúng tôi có thể sử dụng bộ định vị để đặt giá trị của một biến thành viên và chúng tôi có thể triển khai logic
‫của riêng mình theo cách chúng tôi muốn đặt nó.
‫Vì vậy, chúng tôi có thể nói, được rồi, nếu bạn muốn đặt giá trị, nó phải tuân theo các quy tắc của tôi để chúng tôi có thể
‫xác định các quy tắc của riêng mình, quy tắc này phải như vậy.
‫Đã theo dõi.
‫Và sau đó, chúng tôi có các nút điều chỉnh mà chúng tôi cũng có thể điều chỉnh.
‫Vì vậy, chúng tôi chỉ có thể nói, được rồi, nếu bạn muốn nhận được biến mà tôi sẽ cung cấp cho bạn trong
‫trường hợp này, là kết quả của phép nhân chiều dài, chiều cao và chiều rộng để bạn có thể sửa đổi chúng theo ý thích của mình.
‫Bây giờ chúng ta hãy xem xét các thuộc tính và cách tất cả các thuộc tính này được kết nối với nhau.
‫Vì vậy, hãy tạo một thuộc tính và tôi sẽ tạo một thuộc tính công cộng có tên là chiều cao và chiều cao này sẽ
‫điều chỉnh biến thành viên chiều cao của tôi.
‫Vì vậy, nó đã được công khai trước đó.
‫Bây giờ tôi sẽ đặt nó ở chế độ riêng tư để chúng ta không thể truy cập chiều cao từ bên ngoài.
‫Vì vậy, ở đây, nếu tôi muốn điều chỉnh chiều cao, tôi sẽ không thể thực hiện được nữa.
‫Bây giờ tôi nhận được lỗi này.
‫Được chứ?
‫Bây giờ chúng ta hãy sử dụng thuộc tính chiều cao của chúng tôi để vẫn có thể truy cập chiều cao của chúng tôi ở đó.
‫Vì vậy, làm thế nào để chúng tôi làm điều đó?
‫Trước hết, chúng tôi sử dụng tài sản này với chữ H viết hoa ở đầu.
‫Đó thường là cách bạn sử dụng thuộc tính.
‫Đó là một quy ước và lập trình C.
‫Các thuộc tính bắt đầu bằng chữ in hoa và bây giờ ở đây tôi có thể tạo getter của mình và tôi có
‫thể trả về chiều cao và tôi có thể tạo setter của mình.
‫Và tôi chỉ có thể đặt chiều cao ở đây là giá trị được gán.
‫Bây giờ, từ khóa giá trị này là gì?
‫Chà, những gì chúng ta đang làm ở đây về cơ bản giống như chúng ta đã làm trước đây, nơi chúng ta đặt độ dài và lấy
‫độ dài.
‫Nhưng bây giờ cửa ngõ của chúng tôi, có thể nói, là chiều cao tài sản của chúng tôi.
‫Vì vậy, nếu bạn muốn truy cập hoặc thay đổi chiều cao đáng nhớ, bạn phải thực hiện thông qua chiều cao thuộc tính.
‫Vì vậy, bây giờ những gì bạn có thể làm là bạn có thể đặt nó ở giá trị mà bạn đặt sẽ được đặt thành chiều cao.
‫Bây giờ nó thực sự trông như thế nào khi chúng ta vào chương trình của chúng ta bây giờ ở đây nếu chúng ta cố gắng thiết lập chiều cao?
‫Bằng cách truy cập trực tiếp vào biến thành viên, chúng ta không thể làm điều đó nữa.
‫Nhưng nếu bạn truy cập thuộc tính, như bạn có thể thấy, chiều cao có sẵn ở đây và đó là biểu tượng công cụ này mà chúng ta
‫có thể thấy ở đây.
‫Vì vậy, đây thường là biểu tượng mà bạn có khi muốn truy cập một thuộc tính và bạn có thể thấy biểu tượng này hoạt
‫động.
‫Vì vậy, chúng ta có thể đặt chiều cao ngay bây giờ và nếu chúng ta làm như vậy, cái này sẽ hoặc cái này cho ở đây,
‫bất cứ thứ gì nằm sau dấu bằng này hoặc sau dấu bằng này, đó sẽ là giá trị ở đây, giá trị này và nó sẽ được đặt làm
‫chiều cao.
‫Vì vậy, giá trị này khá giống với độ dài mà chúng ta đã có trước đây khi chúng ta tạo độ dài tập hợp này.
‫Đó là một khái niệm khá giống nhau, nhưng chúng tôi chỉ là một cách ngắn hơn để thực hiện nó, phải không?
‫Vì vậy, ở đây bạn có thể thấy nếu chúng tôi muốn có một bộ định giá, chúng tôi đã có tất cả mã này.
‫Tất nhiên, chúng tôi không cần mã này ở đây.
‫Được chứ?
‫Tuy nhiên, chúng tôi đã có tất cả mã này và bây giờ chúng tôi có mã siêu ngắn này.
‫Vì vậy, đây là setter.
‫Tất nhiên ở đây chúng ta cũng có thể điều chỉnh nó.
‫Bây giờ, giả sử nếu giá trị nhỏ hơn 0, thì chúng ta sẽ đặt chiều cao của mình là giá trị trừ và nếu không nó sẽ là
‫chiều cao, giá trị bằng.
‫Bây giờ chúng ta hãy vào chương trình của chúng ta và tôi sẽ đặt chiều cao là âm bốn.
‫Và ở độ dài nói rằng trước đây vì chúng tôi đã tạo ra lỗi này trước đó.
‫Đúng.
‫Và bây giờ chúng ta hãy đặt chiều cao thành trừ bốn và hãy chạy mã của chúng ta.
‫Và chúng ta sẽ thấy rằng nó hoạt động.
‫Vì vậy, chiều dài là chiều cao là chiều rộng là năm.
‫Vậy tại sao lại như vậy?
‫Mặc dù chúng tôi đặt giá trị là trừ bốn?
‫Chà, chúng tôi đã nói nếu giá trị của chiều cao mà bạn chuyển cho tôi là số âm, thì tôi sẽ nhân nó lên.
‫Vì vậy, nếu giá trị nhỏ hơn 0, tôi sẽ nhân nó với trừ một.
‫Vì vậy, tôi sẽ làm cho nó tích cực trở lại.
‫Và nếu nó là số dương, thì chỉ cần tạo nó hoặc gán giá trị.
‫Hoặc nếu nó bằng 0, nó cũng tốt.
‫Được rồi.
‫Vì vậy, đó là những gì chúng ta có thể làm với các thuộc tính.
‫Bây giờ, đây là một triển khai của một thuộc tính.
‫Tất nhiên, những gì bạn có thể làm là bạn cũng có thể chỉ sử dụng thuộc tính mà không cần có biến thành viên.
‫Vì vậy, biến thành viên mà chúng ta có ở đây có thể là một cái gì đó không bắt buộc.
‫Vì vậy, chúng tôi thậm chí có thể bỏ qua điều đó.
‫Vì vậy, giả sử tôi không muốn đặt chiều rộng làm biến thành viên, tôi muốn đặt nó dưới dạng thuộc tính.
‫Và bây giờ tôi sẽ chỉ cho bạn một cách khác để tạo thuộc tính.
‫Và điều này nhanh hơn rất nhiều.
‫Vì vậy, bạn chỉ cần sử dụng P, R, o, p, sau đó bạn nhấn đúp và thao tác này sẽ tạo thuộc tính này cho bạn.
‫Bây giờ bạn chỉ có thể nhập kiểu và tôi sẽ nói, được rồi, nó sẽ là một số nguyên.
‫Sau đó, bạn nhấn tab một lần nữa và bây giờ bạn có thể đặt tên cho nó.
‫Vì vậy, tôi sẽ gọi đây là một chiều rộng.
‫Bây giờ điều gì đang xảy ra ở đây?
‫Chà, đây là mã chỉ được hiểu bởi C sharp và nó thậm chí còn được tạo tự động cho chúng tôi với ID của
‫chúng tôi.
‫Đúng.
‫Nó chỉ nói get dấu chấm phẩy đặt dấu chấm phẩy.
‫Vì vậy, điều này chỉ có nghĩa là nó sẽ trở thành một getter mặc định và một setter mặc định, điều đó
‫có nghĩa là, được rồi, nếu bạn muốn truy cập chiều rộng, bạn chỉ có thể truy cập nó bằng cách sử dụng biến chiều rộng thuộc tính này.
‫Và nếu bạn muốn thiết lập nó, bạn cũng có thể sử dụng nó.
‫Vậy nó có ý nghĩa gì trong trường hợp của chúng ta?
‫Điều đó có nghĩa là bây giờ chúng ta có thể truy cập thuộc tính này bằng cách chỉ định một giá trị.
‫Và nếu chúng ta muốn viết nó ra.
‫Vì vậy, nếu chúng ta muốn truy cập nó, các hộp có dấu chấm hộp.
‫Với.
‫Vì vậy, ở đây chúng tôi có thể truy cập tài sản trực tiếp.
‫Được rồi.
‫Vì vậy, đây là sự khác biệt ở đây.
‫Vì vậy, bên trong nó giống như thể chúng ta đã tạo ra.
‫Các.
‫Với.
‫Hãy quay lại vấn đề này với hãy có biến thành viên này một lần nữa.
‫Vì vậy, bên trong nó giống như thể tôi đã tạo kết thúc công khai này với và
‫tôi sẽ bình luận điều này ngay bây giờ và tôi có một getter để tôi trả lại chiều rộng.
‫Hoặc dấu chấm này với.
‫Và người định cư nơi tôi đã nói họ bắt đầu với giá trị.
‫Được rồi.
‫Vì vậy, đây thực sự là.
‫Đây.
‫Mã ở đây thực sự giống như cái này.
‫Và trong nội bộ, đó cũng là những gì sẽ xảy ra khi bạn biên dịch mã.
‫Vì vậy, trình biên dịch tự động làm điều đó.
‫Đối với chúng tôi, nó chỉ nói rằng, được rồi, nếu bạn có dòng mã này, tôi sẽ xử lý nội bộ nó như
‫thể đó là mã này mà bạn có ở đây, chỉ là nó ngắn hơn rất nhiều và tạo mã này dễ dàng hơn rất
‫nhiều .
‫Được rồi.
‫Vì vậy, tôi sẽ bình luận điều này bởi vì tôi thực sự thích cách tiếp cận ngắn này mà chúng
‫tôi có ở đó, và chúng ta hãy bình luận điều này như thế này.
‫Và tôi không cần biến thành viên này nữa.
‫Được rồi.
‫Bởi vì ở đây chúng ta cần nhớ biến vì tôi đặt chiều rộng và trong trường hợp này, tôi đặt chiều rộng
‫biến thành viên.
‫Tôi đã không đặt.
‫Tôi không thể tự đặt chiều rộng.
‫Vì vậy, nếu thay vào đó tôi ở đây sẽ viết với.
‫Và nếu bây giờ tôi làm điều đó, những gì tôi tạo ra dưới dạng StackOverflow.
‫Vì vậy, tôi liên tục cố gắng thiết lập một cái gì đó và nó sẽ là một vòng lặp vô tận ở đây, điều này không tốt chút nào.
‫Đó là lý do tại sao tôi cần phải nhớ biến cho ví dụ này ở đây.
‫Được rồi.
‫Nhưng trong nội bộ, nó sẽ đối xử với nó như thế này, thế kia.
‫Vì vậy, bên trong nó xử lý nó giống như mã mà chúng ta có ở đây.
‫Chỉ rằng nó ngắn hơn rất nhiều đối với chúng tôi.
‫Được rồi.
‫Vì vậy, bây giờ một thử thách nhỏ cho bạn.
‫Hãy tiếp tục và tạo một thuộc tính cho khối lượng bao quanh nó giống như chúng ta đã làm với chiều rộng ở đây.
‫Được rồi.
‫Rất giống với ví dụ mà chúng ta đã có ở đây, chỉ khác là nó sẽ điều chỉnh âm lượng chứ không phải chiều
‫rộng.
‫Vì vậy, hãy thử điều đó.
‫Tạo tài sản của riêng bạn, gõ nó ra.
‫Đừng thực hiện cách tiếp cận ngắn hoặc sử dụng một cách tiếp cận ngắn.
‫Được rồi.
‫Vì vậy, để điều này có ý nghĩa, trước hết chúng ta phải đặt volume của mình ở chế độ riêng tư và sau đó chúng ta có thể tạo thuộc tính
‫cho volume của mình.
‫Vì vậy, khối lượng int công khai với chữ V viết hoa sẽ nhận được.
‫Trở lại âm lượng và sau đó thiết lập.
‫Khối lượng bắt đầu này bằng.
‫Giá trị.
‫Vì vậy, đây là thuộc tính mà chúng tôi đã tạo cho tập.
‫Tôi hy vọng bạn có thể làm như vậy.
‫Tất nhiên, bạn có thể xóa hoàn toàn tập này và tạo nó theo cách giống như cách chúng ta đã
‫làm với chiều rộng.
‫Nó nhanh hơn rất nhiều, nhưng tôi chỉ muốn cho bạn thấy rằng điều này thật tuyệt.
‫Bây giờ, các.
‫Phần quan trọng ở đây là chúng ta có thể nghĩ về biến khối lượng hoặc thuộc tính này và tại sao, hoặc
‫tại thời điểm nào thì việc thay đổi hoặc lấy nó là hợp lý?
‫Nó thậm chí có ý nghĩa để làm cả hai?
‫Bởi vì khối lượng là thứ được tính toán dựa trên chiều rộng và chiều cao và chiều dài.
‫Bây giờ, đặt âm lượng trực tiếp có hợp lý không?
‫Chà, không, tôi sẽ nói vậy.
‫Tôi nghĩ rằng cài đặt âm lượng thậm chí không có ý nghĩa gì cả vì vậy chúng tôi có thể loại bỏ toàn bộ bộ cài đặt này và
‫chỉ có một bộ định vị.
‫Bây giờ, bản thân âm lượng, chúng tôi không bao giờ đặt âm lượng.
‫Nó luôn được tính toán.
‫Vì vậy, nó có ý nghĩa để chỉ trả lại âm lượng?
‫Chà, nó thực sự không, bởi vì thực sự những gì chúng ta nên làm là ở
‫đây, chúng ta nên tính toán rằng thể tích sẽ là phép nhân của chiều dài, chiều cao và chiều rộng, bạn thấy đấy.
‫Vì vậy, bây giờ nó có ý nghĩa hơn rất nhiều.
‫Vì vậy, những gì chúng tôi trả lại với tập có ý nghĩa hơn rất nhiều.
‫Nếu ai đó muốn có được âm lượng, đó là những gì họ nhận được.
‫Tất nhiên, bây giờ chúng tôi đã tạo ra một lỗi nhỏ ở phía dưới hoặc một số nhận được các phương thức âm lượng mà chúng tôi không
‫cần nữa.
‫Và đồng thời ở đây, chiều rộng bây giờ là thuộc tính mà chúng ta truy cập.
‫Nó sẽ không phải là.
‫Nhớ biến nữa vì chúng ta không có nó nữa.
‫Và tất nhiên, trong CSS chương trình của chúng tôi, bây giờ chúng tôi cũng có thể điều chỉnh mọi thứ.
‫Vì vậy, bây giờ chúng ta có thể truy cập trực tiếp chiều rộng và chúng ta có thể truy cập trực tiếp thuộc tính khối lượng chứ không phải biến khối
‫lượng thành viên nữa.
‫Được rồi.
‫Vì vậy, bây giờ chúng ta hãy thực hiện bước cuối cùng ở đây.
‫Và đó là thêm một phương thức khởi tạo.
‫Vì vậy, công khai.
‫Hộp.
‫Độ dài INT.
‫VÀO.
‫Chiều cao và kết thúc.
‫Bề rộng.
‫Vì vậy, bây giờ nếu chúng ta tạo một hộp, tôi muốn có tất cả các giá trị đó và độ dài
‫được cung cấp cho tôi khi hộp được tạo phải là độ dài chấm này.
‫Sau đó, chiều cao được cho, chiều cao chấm này phải là chiều cao.
‫Vì vậy, chiều cao được đưa ra này phải là chiều cao mà chúng ta có ở đây, là biến thành viên của chúng ta.
‫Và chiều rộng của chúng tôi là cái cuối cùng và đây là tài sản.
‫Vì vậy, chúng tôi đặt nó thành chiều rộng được cung cấp cho chúng tôi.
‫Bây giờ, trong trường hợp này, tất nhiên bạn có thể bỏ qua từ khóa này, từ khóa này.
‫Bạn chỉ có thể nói chiều rộng, bởi vì rõ ràng là chúng ta đang nói về thuộc tính của lớp này.
‫Vì vậy, bạn không cần từ khóa này ở đây.
‫Bây giờ, một điều quan trọng mà ai đó đã hỏi và tôi muốn thực sự làm rõ điều này.
‫Vì vậy, độ dài chấm này, độ dài bằng nhau có tác dụng, nhưng độ dài bằng độ dài chấm này không có ý nghĩa.
‫Vì vậy, dòng này ở đây không có ý nghĩa vì độ dài là phần này ở đây, nó thực sự chỉ là tham số và nó là giá
‫trị được cung cấp cho chúng ta.
‫Vì vậy, chúng tôi không muốn điều chỉnh giá trị được cung cấp cho chúng tôi, nhưng chúng tôi muốn đặt giá trị của thuộc tính của chúng tôi hoặc của biến thành
‫viên của chúng tôi và đó là những gì chúng tôi làm ở đây.
‫Vì vậy, trong trường hợp này, đó là những gì chúng tôi làm.
‫Chúng tôi đặt giá trị của biến thành viên của chúng tôi.
‫Được rồi, bây giờ chúng ta hãy sử dụng hộp này.
‫Hãy tạo các hộp ngay bây giờ, vì bây giờ chúng ta không cần phải làm tất cả những điều đó nữa.
‫Chúng tôi không cần phải đặt các giá trị trực tiếp nữa, nhưng chúng tôi có thể đặt chúng trong quá trình tạo hộp của chúng tôi.
‫Vì vậy, tôi sẽ chỉ định các giá trị ba, bốn và năm.
‫Vì vậy, chiều dài là ba.
‫Chiều cao hay thực tế là chiều cao là bốn thành chiều rộng là năm.
‫Và bây giờ nếu chúng ta chạy nó, nó sẽ hiển thị chiều rộng và âm lượng cho chúng ta.
‫Vì vậy, bạn có với cái này.
‫Năm tập là 60.
‫Được rồi.
‫Điều đó có vẻ hiệu quả.
‫Bây giờ, những gì chúng ta có thể làm là chúng ta có thể thiết lập độ rộng bằng cách truy cập vào thuộc tính của chúng ta.
‫Giả sử bây giờ chúng ta đặt chiều rộng thành mười và chúng ta chạy lại đoạn mã này.
‫Và với phần tách với một lần nữa để chúng ta có thể thấy rằng giá trị mặc định đã được đưa ra được in và sau đó là
‫giá trị mới mà chúng ta đặt.
‫Vì vậy, chúng tôi đặt chiều rộng thành mười và bây giờ nó cho biết chiều rộng và nó tính toán chiều rộng tương ứng.
‫Vì vậy, ba lần, bốn lần mười là một trên 20.
‫Đó là tập mới.
‫Được rồi.
‫Triệu hồi nó lên.
‫Vì vậy, những gì chúng tôi đã làm là chúng tôi tạo ra, trước hết, một loạt các biến thành viên.
‫Chúng tôi đã đặt chúng ở chế độ riêng tư để không ai ngoại trừ chính lớp này có thể truy cập trực tiếp vào chúng.
‫Vì vậy, không có lớp nào khác có thể truy cập trực tiếp vào chúng.
‫Họ chỉ có thể truy cập chúng thông qua các thuộc tính của chúng tôi mà chúng tôi đã tạo hoặc thông qua các thiết lập và thiết kế của chúng tôi.
‫Vì vậy, chúng tôi có chiều dài thiết lập nhận được chiều dài.
‫Vì vậy, nếu ai đó muốn truy cập biến độ dài, họ phải sử dụng cách sử dụng độ dài đặt và lấy
‫độ dài.
‫Đây là một cách tiếp cận hoàn toàn hợp lệ và bạn sẽ thấy điều đó.
‫Và vâng, với những cách tiếp cận đó, bạn có thể xác định logic mà bạn muốn được tuân theo.
‫Ví dụ: nếu ai đó muốn đặt một biến hoặc nếu họ muốn nhận một biến.
‫Bây giờ một cách khác để làm điều đó là sử dụng trực tiếp một thuộc tính.
‫Vì vậy, nếu bạn sử dụng một thuộc tính, bạn cần phải gọi nó bằng một chữ cái viết hoa và
‫sau đó bạn có thể triển khai getter, v.v. nhưng bạn cũng có thể quyết định chỉ triển khai một getter hoặc chỉ triển khai setter.
‫Tất nhiên, chúng tôi không triển khai cả hai ở đây.
‫Bạn cũng có thể đặt.
‫Giá trị trực tiếp, vì vậy bạn có thể đặt các biến thành viên.
‫Vì vậy, đây là những gì chúng tôi đã làm ở đây.
‫Vì vậy, để nói chuyện, thêm một cổng có tên là Chiều cao, là thuộc tính của chúng tôi với chiều cao của chúng tôi mà chúng tôi đã tạo ở đây ở
‫trên cùng, là biến thành viên của chúng tôi.
‫Hoặc chúng tôi chỉ đi trực tiếp mà chúng tôi vừa nói, được rồi, chúng tôi sẽ trực tiếp có một thuộc
‫tính được triển khai tự động rất đơn giản ở đây và chúng tôi không cần phải có thêm một biến thành viên cho nó.
‫Chúng tôi có thể đã đi toàn bộ cách để tất cả các biến đó chỉ có các thuộc tính.
‫Vì vậy, chúng tôi có thể làm cho nó rất đơn giản.
‫Nhưng chỉ cần có ba thuộc tính như thế nào.
‫Đây.
‫Vì vậy, hãy loại bỏ tất cả những điều đó và chỉ cần nhấn đúp công khai hoặc apr0p và, sau đó chiều dài sẽ được
‫thiết lập và sau đó là điều tương tự cho chiều cao, v.v.
‫Nhưng tôi chỉ muốn cho bạn thấy tất cả những cách khác nhau mà có và tất cả những cách khác nhau
‫mà bạn sẽ thấy.
‫Và hầu hết khi bạn nhìn thấy một cái gì đó hoặc khi bạn sử dụng thuộc tính, bạn sẽ thấy chúng hầu hết thời gian
‫như thế này.
‫Vậy với tài sản đã thực hiện khác, cách dễ nhất và nhanh nhất là gì?
‫Bạn sẽ không cần phải sử dụng tất cả các cách tiếp cận khác nhau mà tôi đã chỉ cho bạn điều đó thực sự quan trọng.
‫Bạn sẽ không cần phải sử dụng tất cả các cấu trúc khác nhau, nhưng trong một số trường hợp, bạn sẽ cần phải triển
‫khai setter.
‫Trong một số trường hợp, bạn cần triển khai getter cụ thể và bây giờ bạn biết cách thực hiện.
‫Vì vậy, tóm lại, nếu bạn có bất kỳ câu hỏi nào, tại sao bạn cần cách tiếp cận này?
‫Chà, chúng chỉ được sử dụng khi bạn không có yêu cầu logic bổ sung nào trong người đánh giá tài sản.
‫Vì vậy, trong các định nghĩa tài sản và yeah.
‫Người nhận và người định cư.