Skip to main content

Phương pháp tĩnh là gì?

Một phương thức lập trình máy tính định hướng đối tượng được khai báo trong một lớp nhưng không phụ thuộc vào bất kỳ khởi tạo cụ thể nào của lớp đó được gọi là phương thức tĩnh.Hầu hết các ngôn ngữ lập trình bao gồm từ khóa

tĩnh Trong khai báo phương thức để tạo phương thức tĩnh.Các phương pháp này thuộc về lớp mà chúng được chứa trong và không cho bất kỳ đối tượng nào được khởi tạo từ lớp đó.Chúng thường được gọi là Phương thức lớp . Tên theo nghĩa đen của lớp thường được sử dụng để truy cập một phương thức tĩnh thay vì đề cập đến nó với tên của một đối tượng khởi tạo.Nó được cho phép trong Java để sử dụng tên đối tượng để chỉ các phương pháp này, nhưng nó không được khuyến khích mạnh mẽ.Nếu một tên đối tượng được sử dụng, một người đọc mã có thể nhầm lẫn một trong các phương thức này bằng phương thức thể hiện. Các phương thức tĩnh thường được sử dụng trong các lớp tiện ích không phụ thuộc vào các biến thể hiện từ bất kỳ lớp cụ thể nào.Chúng cũng được sử dụng khi một lập trình viên cần truy cập phương thức nhưng không cần phải khởi tạo lớp mà nó chứa trong. Các lớp tiện ích thường không được khởi tạo thành các đối tượng.Sẽ là bất thường đối với một phương thức tiện ích để có nhu cầu sửa đổi thông tin đối tượng.Một phương thức từ lớp java.lang.math, chẳng hạn như pow (), sẽ là một ví dụ về cách loại phương thức này sẽ được sử dụng trong một lớp tiện ích. Các phương thức thể hiện có thể truy cập trực tiếp các biến thể hiện, biến tĩnh, phương thức thể hiệnvà phương pháp tĩnh.Các phương thức tĩnh không thể truy cập trực tiếp các biến thể hiện và phương thức thể hiện.Do tính chất của các phương pháp thể hiện có quyền truy cập tốt hơn với các thành viên lớp so với các phương thức tĩnh, các phương thức thể hiện là loại phương pháp thường được sử dụng trong các lớp thông thường. Một nhược điểm chính của các phương pháp tĩnh xảy ra trong quá trình di truyền khi sử dụng đa hình.Miễn là phương pháp tĩnh cha không được khai báo cuối cùng, cùng một phương thức tĩnh con có thể được mã hóa trong lớp con như thể nó bị ghi đè.Về mặt kỹ thuật, được gọi là ẩn thay vì ghi đè vì một phương thức tĩnh không thể bị ghi đè. Khi ẩn được sử dụng, nếu phương thức tĩnh cha được truy cập bằng tên lớp, phương thức cha sẽ được sử dụng.Nếu phương thức tĩnh trẻ được ghi đè được truy cập bằng tên đối tượng, phương thức con được ghi đè sẽ được sử dụng.Vấn đề xảy ra khi một đối tượng con được nâng lên như cha mẹ.Trong trường hợp này, một cuộc gọi đến phương thức tĩnh của con UPCAST sẽ sử dụng phương thức cha thay vì phương pháp con dự kiến.Với tính đa hình thực sự, phương pháp con sẽ là phương pháp được kích hoạt sau khi upcast.