Chức năng như First-Class Giá trị
Trong Java, chúng ta quen với việc thông qua các đối tượng và giá trị nguyên thủy với các phương pháp, trả lại từ các phương pháp, và gán chúng cho các biến. Điều này có nghĩa rằng các đối tượng
và nguyên thủy là lớp học đầu tiên valuesin Java. Lưu ý rằng lớp mình không có giá trị firstclass, mặc dù các API phản ánh cung cấp thông tin về các lớp học.
Chức năng là những giá trị không phải đầu tiên-class trong Java. Hãy làm rõ sự khác biệt giữa một
methodand một chức năng.
Một methodis một khối mã gắn vào một lớp học đặc biệt. Nó chỉ có thể được
gọi là trong bối cảnh của lớp học, nếu nó được định nghĩa là tĩnh, hoặc trong
bối cảnh của một thể hiện của lớp. Một functionis tổng quát hơn. Nó không được
gắn vào bất kỳ lớp học đặc biệt hoặc đối tượng. Vì vậy, tất cả cá thể methodsare functionswhere một trong các đối số là đối tượng.
Java chỉ có phương pháp và phương pháp không phải lần đầu classin Java. Bạn không thể thông qua một phương pháp
như một đối số phương pháp khác, trả lại một phương pháp từ một phương pháp, hoặc chỉ định phương pháp
như một giá trị cho một biến.
Tuy nhiên, vô danh nhất classesare bên trong hiệu quả hoạt động "wrappers." Nhiều Java
phương pháp lấy một ví dụ của một giao diện mà tuyên bố một phương pháp. Dưới đây là một phổ biến
ví dụ, chỉ định một ActionListenerfor một ứng dụng AWT / Swing (xem chi tiết Prefacefor vào được và sử dụng tất cả các mã nguồn ví dụ trong cuốn sách này):
chức năng gói;
. java.awt nhập khẩu *;
java.awt.event nhập khẩu *. ;
class HelloButtonApp2 {
thức nút Nút tin = nút mới ();
HelloButtonApp2 công cộng () {
button.addActionListener (ActionListener mới () {
public void actionPerformed (ActionEvent e) {
System.out.println ("Xin chào quý: sự kiện nhận được:" + e);
}
});
}
}
Nếu chúng ta muốn các nút để làm một cái gì đó, chúng ta phải xác định một ActionListenerobject,
trong đó có một phương pháp duy nhất: actionPerformed. Chúng tôi đã sử dụng một classto vô danh trong
thực hiện các giao diện và phương pháp.
Nó là rất phổ biến trong các API Java để xác định các giao diện tùy chỉnh như thế này mà tuyên bố một single
phương pháp trừu tượng. Chúng thường được dán nhãn "phương pháp gọi lại," vì chúng thường được
sử dụng để cho phép đăng ký mã số khách hàng sẽ được gọi là cho các sự kiện đặc biệt
đang được dịch, vui lòng đợi..