Tại sao các phương thức của lớp Toán tĩnh?Tại sao các phương thức của lớp Toán tĩnh?
Trả lời
Vì chúng không yêu cầu bất kỳ trạng thái nội bộ nào, nhưng không có hàm độc lập trong Java - mọi hàm đều phải là thành viên của một lớp. Vì vậy, chúng tĩnh.
Chủ yếu vì đây là các phương pháp tiện ích, nhiều phương pháp trong số đó có thể được áp dụng cho các tính toán trên nguyên thủy. Mục đích của lớp là phần lớn để cung cấp một thư viện hàm chuẩn, nhiều trong số đó không cần phải được áp dụng trực tiếp cho một đối tượng.
Chúng tĩnh vì các phương thức không dựa trên instance variables của lớp Toán.
Chức năng tĩnh là "tác dụng phụ" miễn phí. Không cần phải theo dõi các biến trạng thái khi bạn đang mong đợi một kết quả duy nhất từ tính toán.
Các hàm tĩnh không phải theo định nghĩa có hiệu lực phụ miễn phí. – eljenso
Chúng có thể được gọi như thể chúng là một thư viện mã toán học.
Khi bạn có các phương pháp không thực sự liên quan đến một tiểu bang hoặc một lớp (ví dụ: các hàm toán học, các tiện ích trên mảng, v.v.), lớp này chỉ được sử dụng để "nhóm" chúng thành một vị trí nhất quán. Vì vậy, bạn liệt kê chúng là tĩnh (vì chúng không chạm vào trạng thái) và vì bạn chưa bao giờ thực sự khởi tạo lớp.
Cùng với những gì người khác đã nói ... phương pháp tĩnh là nhanh hơn để kêu gọi 2 lý do:
- họ không đa hình - vì vậy nó là một hướng dẫn JVM đặc biệt để chạy chúng
- họ làm không cần phải vượt qua "điều này" làm đối số đầu tiên - không vượt qua đối số có nghĩa là ít mục hơn trên ngăn xếp có nghĩa là ít thời gian hơn để đặt các mục trên ngăn xếp
Chúng cần phải tĩnh vì số nguyên thủy và không phải là đối tượng thích hợp vì vậy họ không thể là các phương pháp thể hiện của các loại số.
Bây giờ Java cũng có các lớp cho số hạng đấm bốc, nhưng nó sẽ là quá kém hiệu quả để tạo một đối tượng cho mỗi phép toán.
Trong các ngôn ngữ khác, ví dụ: Smalltalk, số là các đối tượng và tất cả các phép toán số học là các phương thức thể hiện.
- 1. Tại sao các lớp tĩnh không có các phương thức và biến không tĩnh?
- 2. Tại sao phương thức tĩnh Tạo tồn tại?
- 3. Lấy MethodInfo của phương thức tĩnh của một lớp tĩnh
- 4. Tại sao các phương thức mở rộng C# phải được định nghĩa trong các lớp tĩnh?
- 5. Phương thức tĩnh lớp Python
- 6. Tại sao JavaMail Transport.send() là một phương thức tĩnh?
- 7. Mẫu phương thức mẫu cho các lớp tĩnh
- 8. Lớp C# - Tại sao có quá nhiều phương pháp tĩnh?
- 9. Tại sao phải có phương thức ClassInitialize là tĩnh?
- 10. Cách đặt tên lớp hiện tại theo phương thức tĩnh?
- 11. Tại sao phương thức getResourceAsStream nằm trong lớp Class?
- 12. Tại sao '{' ném một NullReferenceException trong một phương thức tĩnh?
- 13. Tại sao PowerShell sử dụng dấu hai chấm (::) để gọi các phương thức tĩnh của một lớp .NET?
- 14. AS3: gọi phương thức lớp tĩnh - tên lớp và phương thức là các chuỗi
- 15. Tại sao không __new__ trong các lớp kiểu Python mới một phương thức lớp?
- 16. Tại sao các lớp tĩnh được sử dụng?
- 17. nguồn gốc lớp gọi phương thức tĩnh của lớp cơ sở trong phương pháp tĩnh của riêng mình
- 18. Lớp nào đã gọi phương thức tĩnh của tôi?
- 19. Tại sao các toán tử không thể bị quá tải bên trong một lớp tĩnh?
- 20. Điểm của một phương thức tĩnh trong một lớp không tĩnh là gì?
- 21. xCode/khai báo các phương thức tĩnh trong lớp
- 22. Tại sao các lớp bên trong làm cho các phương thức riêng có thể truy cập?
- 23. Cách lấy tên lớp từ phương thức tĩnh tĩnh
- 24. Python Phương pháp tĩnh, tại sao?
- 25. Tại sao lớp System.Random không tĩnh?
- 26. Tại sao lại sử dụng các phương thức trợ giúp tĩnh trong Java?
- 27. Tại sao việc gọi một phương thức tĩnh được bảo vệ trong các lớp dẫn xuất được cho phép?
- 28. Tại sao các phương pháp tĩnh cần được đưa vào lớp học?
- 29. C# Thay thế cho các phương thức tĩnh ảo và các lớp con tĩnh
- 30. Trong PHP, tại sao tôi có thể truy cập phương thức không tĩnh theo cách tĩnh?
và chúng không đa hình/ảo. – ChrisW
Chúng tĩnh vì chúng được khai báo là 'tĩnh'. Chúng * có thể được * tĩnh bởi vì chúng không dựa vào các biến mẫu và không cần phải bị ghi đè hoặc gọi là đa hình. –