หลายครั้ง ฉันเจอช่วงเวลาที่นักเรียนไม่เข้าใจตรรกะของการโต้ตอบระหว่างวิธีการต่างๆ ในคำถามข้อหนึ่งสำหรับงานได้รับรหัสต่อไปนี้:
public class Solution {
public static void main(String[] args) {
System.out.println(convertCelsiusToFahrenheit(41));
}
public static double convertCelsiusToFahrenheit(int celsius) {
double TC = 41;
double TF = 9 / 5.0 * TC + 32;
return TF;
}
}
ที่จริงแล้ว การปฏิบัติตามโค้ดนี้ ไม่ว่าเราจะส่งค่าใดไปยัง method convertCelsiusToFahrenheit
เราก็จะได้ผลลัพธ์เดียวกันเสมอ การปฏิสัมพันธ์ควรเกิดขึ้นอย่างไร? ลองจินตนาการว่ามีคุณอยู่ คุณมีเงินและต้องการซื้อคอนโซลโดยรู้ราคา แต่คุณมีความหลงใหลในการเรียนรู้ Java มากจนไม่มีเวลาซื้อคอนโซล
public static void main(String[] args) {
แต่คุณมีเพื่อนที่มีเวลาและชอบเดินเล่นในร้านค้า
public static String friendVasya(int money) {
int price = 300;
ในกรณีนี้ ฉันสร้างวิธีการfriendVasya
ด้วย return type String
คุณสามารถตั้งค่าประเภทข้อมูลอื่นแทนได้ ทุกอย่างขึ้นอยู่กับสิ่งที่คุณต้องการรับในที่สุด เมื่อเมธอดทำงานfriendVasya
ก็จะได้รับจำนวนเงินที่คุณระบุในอาร์กิวเมนต์ ( int money
) เพื่อนของ Vasya อาจมีเรื่องหรือความต้องการของเขามากมาย เราจะอธิบายทั้งหมดนี้ด้วยวิธีfriendVasya
แต่เราสนใจเพียงว่าเขาจะซื้อคอนโซลให้เราหรือไม่ เรามาเพิ่มคุณสมบัตินี้ให้เขากันดีกว่า
public static String friendVasya(int money){
int cash = money - price;
String purchase;
และตามนั้นอาจมีเงินเพียงพอหรืออาจจะไม่เพียงพอ ลองใช้การตอบสนองที่แตกต่างกันสำหรับสถานการณ์เหล่านี้
public static String friendVasya(int money){
int price = 300;
int cash = money - price;
String purchase;
if (cash>=0){
purchase = "Купил";}
else{
purchase = "Этого мало. Где деньги, Лебовски?";}
return String.format(purchase);}
จากการเรียกวิธีการfriendVasya
และส่งเงินไปให้ในรูปแบบของการโต้แย้งเรื่องเงินเราจะสามารถซื้อคอนโซลหรือพบว่ามีเงินไม่เพียงพอสำหรับการซื้อ สิ่งที่เหลืออยู่คือการเพิ่มการเรียกเมธอดนี้ในโค้ดโปรแกรมโดยระบุจำนวนเงินที่คุณยินดีจ่ายสำหรับคอนโซล /*ในกรณีนี้จะเป็น 500 */:
public static void main(String[] args) {
System.out.println(friendVasya(500));
รหัสเต็ม:
public class Game {
public static void main(String[] args) {
System.out.println(friendVasya(500));
}
public static String friendVasya(int money){
int price = 300;
int cash = money - price;
String purchase;
if (cash>=0){
purchase = "Купил";}
else{
purchase = "Этого мало. Где деньги, Лебовски?";}
return String.format(purchase);
}
}
จริงๆ แล้ว สาระสำคัญของโค้ดทั้งหมดนี้คือ:
- การเปิดตัว
main
และเปิดใช้งานวิธีการSystem.out.println
// ต้องการคอนโซลพบเพื่อน - ผ่านการโต้แย้ง
int money = 500
// โอนเงินให้เพื่อน; - เปิดตัววิธีการ
friendVasya
และประมวลผลข้อโต้แย้งint money
ที่ได้รับจากวิธีการmain
// Vasya ไปที่ร้านและพยายามซื้อกล่องรับสัญญาณด้วยเงินที่ได้รับ - กลับ
String purchase
ไปที่เมธอดmain
เป็นอาร์กิวเมนต์ที่ส่งผ่านreturn
ไปยังเมธอดprintln
// Vasya รายงานว่าเขาทำสิ่งนี้สำเร็จหรือไม่
GO TO FULL VERSION