Tôi nhầm lẫn với từ khóa this
trong Java. Nếu một lớp có hai hàm tạo và chúng tôi sử dụng từ khóa this
trong một số phương thức, đối tượng được biểu diễn bằng this
được khởi tạo bằng cách sử dụng của hai hàm tạo nào?Sử dụng từ khóa 'này' trong các nhà xây dựng Java
Trả lời
Nó không quan tâm và không thể phân biệt được
Nó phần nào giống như xây dựng một chiếc xe hơi. Tùy thuộc vào các tính năng mà một hàm tạo khác được sử dụng, nhưng cuối cùng bạn có một chiếc xe hơi (điều này)
Bạn có thể nghĩ từ khóa this
là một trình giữ chỗ. Khi chạy, từ khóa đó được trao đổi với tham chiếu đối tượng của đối tượng mà bạn đang xử lý.
Nó không phải làm bất cứ điều gì với các nhà xây dựng, phân bổ bộ nhớ hoặc bất cứ điều gì như thế. this
từ khóa chỉ là tham chiếu đối tượng hiện tại.
Từ khóa this
có hai nghĩa và sự nhầm lẫn có thể xung quanh hai nghĩa này.
Trong hàm tạo, this(...)
giống như một lời gọi phương thức cho các hàm tạo. Trình biên dịch chọn hàm tạo nào để gọi dựa trên số và loại đối số bạn sử dụng.
Khi bạn sử dụng this
làm tham chiếu, điều đó có nghĩa là đối tượng này và hàm tạo nào đã được sử dụng không quan trọng.
Bạn cần phải phân biệt giữa this.
và this()
, có thể nói:
Hầu hết thời gian, bạn sử dụng this
như tham chiếu đến đối tượng hiện tại, ví dụ: tài liệu tham khảo của đối tượng này sẽ được thay thế trong thời gian chạy cho this
. Ví dụ: nếu bạn sử dụng this
làm tham số hoặc tham chiếu this.someMember
.
Bạn có thể có các hàm tạo khác nhau với các tham số khác nhau, tức là các hàm tạo quá tải. Khi bắt đầu một hàm tạo, bạn có thể gọi một hàm tạo khác bằng cách sử dụng this(parameter_1, ... parameter_n);
làm hướng dẫn đầu tiên.
Một lời giải thích hay về cả hai trường hợp có thể được tìm thấy tại the java tutorial about the this keyword.
Sử dụng this
trong thân phương pháp đề cập đến trường hợp của lớp mà phương thức tồn tại.
Điều này cũng ngụ ý rằng không thể sử dụng this
từ ngữ cảnh static
.
this
biểu thị dụ bản thân regarldless như thế nào dụ được xây dựng từ khóa
1.'this' đề cập đến đối tượng của lớp nó ở đâu used.Generally chúng tôi viết biến Ví dụ, nhà thầu và phương pháp trong class.All này các thành viên được đại diện bởi 'điều này'.
2.Khi một đối tượng được tạo ra cho một lớp, một tham chiếu mặc định cũng được tạo ra bên trong đối tượng.Không có gì ngoài 'this'.
3.Ví dụ cho này từ khóa:
Mẫu (int x) // Tham số Constructor {
này.x = x; // Lưu biến biến cục bộ x vào biến thể hiện của lớp hiện tại x
}
cảm ơn hoa ;-) –