2009-02-23 36 views

Trả lời

26

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.

2

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.

2

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.

+0

và chúng không đa hình/ảo. – ChrisW

+0

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. –

0

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.

+5

Các hàm tĩnh không phải theo định nghĩa có hiệu lực phụ miễn phí. – eljenso

-7

Chúng có thể được gọi như thể chúng là một thư viện mã toán học.

6

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.

5

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:

  1. 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
  2. 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
-1

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.

Các vấn đề liên quan