.3. Kêu gọi một phương phápTrong việc tạo ra một phương pháp, bạn cung cấp cho một định nghĩa của những gì các phương pháp là để làm. Để sử dụng một phương pháp, bạn phải gọi điện thoại hoặc gọi nó. Có hai cách để gọi một phương pháp; sự lựa chọn ngày cho dù phương pháp trả về một giá trị hoặc không.Nếu phương pháp trả về một giá trị, một cuộc gọi đến phương pháp thường được coi là một giá trị. Ví dụ,int lớn hơn = tối (3, 4);cuộc gọi tối đa (3, 4) và đặt kết quả của phương pháp biến lớn hơn. Một ví dụ khác của một cuộc gọi được xử lý như một giá trị làSystem.out.println (tối đa (3, 4));mà in giá trị trả lại phương pháp gọi tối đa (3, 4).Nếu phương pháp trở về void, một cuộc gọi đến phương pháp phải là một tuyên bố. Ví dụ, println phương pháp trở về void. Các cuộc gọi là một tuyên bố:System.out.println ("Chào mừng đến với Java!");Lưu ý Một phương pháp với một loại giá trị trả lại nonvoid cũng có thể được kích hoạt như một tuyên bố trong Java. Trong trường hợp này, người gọi đơn giản là bỏ qua giá trị trả lại. Điều này là hiếm, nhưng cho phép nếu người gọi không phải là quan tâm đến giá trị trả lại. Khi một chương trình gọi là một phương pháp, chương trình điều khiển được chuyển giao cho các phương pháp được gọi là. Một phương pháp gọi là trả lại kiểm soát cho người gọi khi tuyên bố trở lại của nó được thực hiện hoặc khi phương pháp kết thúc đóng cửa đôi được đạt tới.Danh sách 5.1 cho thấy một chương trình đầy đủ được sử dụng để thử nghiệm các phương pháp tối đa. Đầu ra của chương trình được hiển thị trong hình 5.2.Con số 5,2. Chương trình invokes max (i, j) để có được giá trị tối đa giữa i và j.--------------------------------------------------------------------------------[Trang 132]Danh sách 5.1. TestMax.java 1 công cộng lớp TestMax {} 2 / ** chính phương pháp * / 3 công tĩnh void main (String [] args) {} 4 int tôi = 5; 5 int j = 2; 6 int k = tối (i, j); 7 System.out.println ("Tối đa giữa" + i + 8" và" + j + "là" + k); 9}1011 / ** trở lại tối đa giữa hai số * /12 int công cộng tĩnh max (int num1, int num2) {}13 int quả;1415 nếu (num1 > num2)16 quả = num1;17 khác18 quả = num2;1920 trả về kết quả; 21}22} Chương trình này có chứa các phương pháp chính và các phương pháp tối đa. Các phương pháp chính là giống như bất kỳ phương pháp khác ngoại trừ rằng nó được kích hoạt bởi JVM.Tiêu đề các phương pháp chính là luôn luôn như nhau, như một trong ví dụ này, với các khu vực công cụ điều chỉnh và tĩnh, trở về tên giá trị loại void, phương pháp chính, và một tham số của String [] loại. String [] chỉ ra rằng các tham số là một mảng của chuỗi, một chủ đề giải quyết trong chương 6, "Mảng."Những điều khoản trong chính có thể gọi các phương pháp khác được định nghĩa trong lớp có chứa các phương pháp chính hoặc trong các lớp học khác. Trong ví dụ này, phương pháp chính invokes max (i, j), được xác định trong lớp học tương tự với các phương pháp chính.Khi các phương pháp tối đa là gọi (khổ 6), biến i giá trị 5 được thông qua để num1, và giá trị biến abnj 2 được thông qua để num2 trong phương pháp tối đa. Dòng chảy của điều khiển chuyển sang các phương pháp tối đa. Các phương pháp tối đa được thực thi. Khi các báo cáo trở lại trong phương pháp tối đa được thực thi, các phương pháp tối đa trở về sự kiểm soát của nó gọi (trong trường hợp người gọi là phương pháp chính). Quá trình này được minh họa trong hình 5.3.Con số 5.3. Khi các phương pháp tối đa gọi, dòng chảy của điều khiển chuyển sang các phương pháp tối đa. Sau khi các phương pháp tối đa hoàn tất, nó trở về sự kiểm soát trở lại cho người gọi. --------------------------------------------------------------------------------[Trang 133]Thận trọng Một tuyên bố trở lại được yêu cầu cho một phương pháp nonvoid. Phương pháp Hiển thị dưới đây ở (a) là một cách hợp lý đúng, nhưng nó có một lỗi biên soạn bởi vì trình biên dịch Java nghĩ rằng nó có thể rằng phương pháp này không trả lại bất kỳ giá trị. Để khắc phục vấn đề này, hãy xóa nếu (n < 0) tại (a), vì vậy mà trình biên dịch sẽ thấy một tuyên bố trở lại được đạt đến bất kể như thế nào các nếu tuyên bố được đánh giá. Lưu ý Một trong những lợi ích của phương pháp là để tái sử dụng. Các phương pháp tối đa có thể được gọi từ bất kỳ lớp học bên cạnh việc TestMax. Nếu bạn tạo một lớp mới, thử nghiệm, bạn có thể gọi phương pháp tối đa bằng cách sử dụng ClassName.methodName (ví dụ, TestMax.max). 5.3.1. gọi ngăn xếpMỗi lần một phương pháp được gọi, Hệ thống lưu trữ các tham số và biến trong một khu vực của bộ nhớ, được biết đến như một chồng, mà các cửa hàng yếu tố trong cuối cùng trong first-out thời trang. Khi một phương pháp gọi là một phương pháp, người gọi ngăn xếp space được giữ nguyên vẹn, và không gian mới được tạo ra để xử lý cuộc gọi phương pháp mới. Khi một phương pháp kết thúc công việc của mình và trả về cho người gọi của nó, không gian liên kết của nó được phát hành.Sự hiểu biết cuộc gọi ngăn xếp giúp bạn hiểu làm thế nào phương pháp được gọi. Các biến được xác định trong các phương pháp chính là tôi, j và k. Các biến được xác định trong các phương pháp tối đa là num1, num2, và kết quả. Biến num1 và num2 được định nghĩa trong chữ ký phương pháp và các thông số của phương pháp. Giá trị của họ được chuyển qua lời gọi phương pháp. Con số 5.4 minh hoạ các biến trong ngăn xếp.Con số 5.4. Khi các phương pháp tối đa gọi, dòng chảy của điều khiển chuyển sang các phương pháp tối đa. Sau khi các phương pháp tối đa hoàn tất, nó trở về sự kiểm soát trở lại cho người gọi. Mẹo Nếu bạn sử dụng một IDE chẳng hạn như JBuilder, NetBeans, hoặc Eclipse, xin vui lòng tham khảo để học Java có hiệu quả với JBuilder/NetBeans/Eclipse trong các chất bổ sung. Phần bổ sung này cho bạn thấy làm thế nào để sử dụng một trình gỡ lỗi để theo dõi phương pháp invocations.
đang được dịch, vui lòng đợi..
