Đi qua các tham số của các giá trị
Sức mạnh của một phương pháp là khả năng làm việc với các thông số. Bạn có thể sử dụng println in bất kỳ chuỗi ký tự và tối đa để tìm ra tối đa giữa bất kỳ hai giá trị int. Khi gọi một phương thức, bạn cần cung cấp lập luận, mà phải được đưa ra trong cùng một thứ tự như các thông số tương ứng của họ trong các đặc điểm kỹ thuật phương pháp. Điều này được biết đến như hiệp hội để tham số. Ví dụ, các phương pháp sau đây in một thông báo n lần: public static void (nhắn String, int n) {nPrintln for (int i = 0; i <n; i ++) System.out.println (tin nhắn);} Bạn có thể sử dụng nPrintln ("Hello", 3) in "Hello" ba lần. Các nPrintln ("Hello", 3) tuyên bố vượt qua các tham số chuỗi thực tế, "Hello", các tham số, tin nhắn; đi 3 đến n; và in "Hello" ba lần. Tuy nhiên, tuyên bố nPrintln (3, "Hello") sẽ là sai lầm. Các kiểu dữ liệu của 3 không phù hợp với các kiểu dữ liệu cho tham số đầu tiên, thông điệp, cũng không có tham số thứ hai, "Hello", phù hợp với tham số thứ hai, n. Chú ý các đối số phải phù hợp với các thông số theo thứ tự, số, và loại tương thích , như được định nghĩa trong chữ ký phương pháp. Tương thích loại có nghĩa là bạn có thể vượt qua một đối số cho một tham số mà không đúc rõ ràng, chẳng hạn như đi qua một tham số int giá trị cho một tham số giá trị gấp đôi. Khi bạn gọi một phương pháp với một tham số, giá trị của các đối số được truyền vào tham số. Điều này được gọi là pass-by-value. Nếu đối số là một biến chứ không phải là một giá trị văn chương, các giá trị của biến được truyền vào tham số. Biến không bị ảnh hưởng, bất kể những thay đổi được thực hiện cho các tham số bên trong phương pháp. Chúng tôi sẽ xem xét một kịch bản thú vị trong các ví dụ sau đây, trong đó các thông số được thay đổi trong phương pháp này nhưng các đối số không bị ảnh hưởng. Listing 5.3 là một chương trình mà chứng tỏ hiệu quả của truyền theo giá trị. Chương trình này tạo ra một phương pháp để trao đổi hai biến. Các phương pháp trao đổi được gọi bằng cách đi qua hai đối số. Điều thú vị là, các giá trị của các đối số không thay đổi sau khi phương pháp này được gọi. Các đầu ra của chương trình được thể hiện trong hình 5.5. Hình 5.5. Nội dung của các đối số không đổi sau khi các phương pháp trao đổi được gọi. ----------------------------------- --------------------------------------------- [Trang 136] Liệt kê 5.3. TestPassByValue.java 1 public class TestPassByValue {2 / ** Phương pháp chính * / 3 static void main (String [] args) {công 4 // Khai báo và khởi tạo các biến 5 int num1 = 1; 6 int num2 = 2; 7 8 Hệ thống .out.println ("Trước khi gọi phương thức trao đổi, num1 là" + 9 num1 + "và num2 là" + num2); 10 11 // Gọi phương thức hoán đổi để cố gắng để trao đổi hai biến 12 swap (num1, num2); 13 14 System.out.println ("Sau khi gọi phương thức trao đổi, num1 là" + 15 num1 + "và num2 là" + num2); 16} 17 18 / ** Swap hai biến * / 19 public static void swap (int n1, n2 int) {20 System.out.println (" tInside phương pháp trao đổi"); 21 System.out.println (" t tBefore swapping n1 là" + n1 22 + "n2 là" + n2); 23 24 // Swap n1 n2 với 25 int temp = n1; 26 n1 = n2; 27 n2 = temp; 28 29 System.out.println (" t tAfter swapping n1 là" + n1 30 + "n2 là" + n2); 31} 32} Trước khi các phương pháp trao đổi được gọi (dòng 12), num1 và num2 là 1 là 2. Sau khi các phương pháp trao đổi được gọi, num1 vẫn là 1 và num2 vẫn là 2. giá trị của họ không đổi sau khi Phương pháp trao đổi được gọi. Như thể hiện trong hình 5.6, các giá trị của các đối số num1 và num2 được thông qua với n1 và n2, nhưng n1 và n2 có bộ nhớ vị trí của riêng mình độc lập của num1 và num2. Do đó, những thay đổi trong n1 và n2 không ảnh hưởng đến nội dung của num1 và num2. Hình 5.6. Các giá trị của các biến được truyền cho các tham số của phương thức. ------------------------------------ -------------------------------------------- [Trang 137] xoắn khác là thay đổi tên tham số n1 trong trao đổi để num1. Hiệu lực, điều này không có? Không có thay đổi xảy ra bởi vì nó làm cho không có sự khác biệt cho dù các tham số và đối số có cùng tên. Các tham số là một biến trong các phương pháp với không gian bộ nhớ riêng của mình. Các biến được phân bổ khi phương thức được gọi, và nó biến mất khi phương thức này được trả lại cho người gọi của nó. Lưu ý Để đơn giản, lập trình viên Java thường nói truyền một đối số x để một y tham số, đó thực sự có nghĩa là đi qua các giá trị của x để y.
đang được dịch, vui lòng đợi..
