Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Có thể định nghĩa tên method trùng tên class trong Java không?

Có, được phép định nghĩa phương thức trùng tên với lớp. Không có lỗi compile-time hay runtime. Nhưng không khuyến khích theo chuẩn code Java. Thông thường constructor trùng tên class.

Ví dụ minh họa

public class MethodNameTest { 
    private String str = "Welcome to TutorialsPoint"; 
    
    public void MethodNameTest() { // Method trùng tên class 
        System.out.println("Both method name and class name are the same"); 
    } 
    
    public static void main(String args[]) { 
        MethodNameTest test = new MethodNameTest(); 
        System.out.println(test.str); 
        test.MethodNameTest(); // Gọi method 
    } 
}

Code compile và chạy thành công.

Kết quả đầu ra

Welcome to TutorialsPoint 
Both method name and class name are the same

Phân biệt Method vs Constructor

Đặc điểmMethodConstructor
Kiểu trả vềCó (void hoặc type)Không (không viết void)
Gọitest.methodName()new ClassName()
Kế thừaCóKhông (nhưng super())
OverrideCóKhông
Mặc địnhKhông cóCompiler tạo no-arg nếu không khai báo

Lưu ý

  • Nếu method không có kiểu trả về → nó là constructor (dù trùng tên class).
  • Nếu method có kiểu trả về (void/int/String...) → nó là method bình thường.
  • Đặt tên method trùng class gây nhầm lẫn, vi phạm naming convention (method nên động từ, class danh từ).