nếu chúng ta tạo đối tượng Thread - Thread t1 = new Thread(); nó thực sự có nghĩa là chúng ta đã tạo ra thể hiện của lớp Thread, từ đó chúng ta có thể gọi phương thức tĩnh? (ví dụ: sleep()).
Khi bạn gọi phương thức tĩnh, bạn không gọi nó từ đối tượng. Đó là lý do tại sao nó tĩnh. Không cần một cá thể để thực hiện một phương thức tĩnh.
Ví dụ
Thread t1 = new Thread();
t1.checkAccess(); // <--- This is an instance method.
Thread.activeCount(); // <-- This is a static method.
Khi bạn nhìn thấy từ khóa new
, nó có nghĩa là một đối tượng mới được tạo ra. Trong trường hợp này, nó là một thể hiện của lớp Thread
, như bạn đã nói đúng.
Làm thế nào để bạn phân biệt chúng?
Thật đơn giản. Nếu đó là một phương thức thể hiện, nó sẽ được gọi từ ngữ cảnh của đối tượng .
String str = new String("hello");
str = str.replaceAll("o", "");
Như bạn thấy, bạn phải tạo một dụ sử dụng một phương pháp dụ.
Với phương thức tĩnh, thậm chí còn dễ dàng hơn. Họ sẽ được gọi với không có gì ngoài tên của lớp.
String.copyValueOf(new char[] {'a', 'b', 'c'});
Không cần phải tạo phiên bản String
mới. Đơn giản chỉ cần sử dụng tên của lớp.
LƯU Ý: Như đã chỉ ra trong các ý kiến, một phương pháp tĩnh thể được gọi từ một đối tượng dụ, nhưng đây không phải là thực tế phổ biến. Nếu bạn không chắc chắn, tài liệu là người bạn tốt nhất của bạn. Hoặc bạn có thể chỉ cần kiểm tra bằng cách cố gắng gọi cùng một phương thức từ ngữ cảnh tĩnh.
Khi nào sử dụng phương pháp tĩnh thay vì phương pháp thể hiện?
Vâng này được trả lời, rất tốt, ở đây: Java: when to use static methods và tôi thấy không có ý nghĩa trong lặp lại nó :)
+1 để đặt câu hỏi đơn giản, rõ ràng và súc tích. Bạn sẽ ngạc nhiên khi có bao nhiêu người ở đây hỏi những câu hỏi đơn giản trong tâm trí một cách cực kỳ phức tạp. – christopher
Tôi luôn cực kỳ chú ý đến điều đó (một nửa gia đình tôi không phải là người bản xứ Anh, và bạn đã bao giờ thử nói với một gánh nặng của người Ả Rập họ sai à? Đó là những thứ đáng sợ). Tuy nhiên, có những người ở đây những người ** là ** người bản xứ tiếng Anh và vẫn cố gắng để làm cho mình âm thanh thông minh hơn, hoặc hơn phức tạp các câu hỏi với những thứ như một vấn đề 'XY'. Tôi đã tìm ra, trong khi tôi thấy một ví dụ điển hình về một câu hỏi đơn giản, cũng có thể khen ngợi OP! – christopher