1、定义一个方法并且调用,这样会很方便,大大减少不必要的浪费。但定义方法之前首先得明确该方法最后的结果想要执行什么?还要明确在该方法中是否需要一些参数(形参)
例如下面的代码片段:
1 // 进入租车系统 2 public void YesOrNo() { 3 System.out.println("*************欢迎使用达达租车系统************"); 4 System.out.print("\n"); 5 System.out.println("您是否要租车?1、是 2、否"); 6 Scanner input = new Scanner(System.in); 7 if (input.nextInt() == 1) { 8 System.out.println("***********您可租车的类型及其价目表***********"); 9 } 10 }
以上的YesOrNo()方法想要执行的只是一个进入系统的提示,不需要任何参数,也不需要返回任何值,在main函数中直接调用它就可以了
再例如下面的代码片段:
1 // 获取汽车信息 2 public void getCarsList(Car[] cars) { 3 System.out.printf("序号\t汽车名称\t\t租金\t\t容量"); 4 for (int i = 1; i <= cars.length; i++) { 5 System.out.println("\r" + i + ".\t" + cars[i - 1].getBrand() + "\t" + cars[i - 1].getPrice() + "元/天 \t" 6 + cars[i - 1].getCapacity()); 7 } 8 }
以上的getCarsList()方法执行打印车辆信息,它需要传入原始车辆信息数据(Car[] cars),这就得定义一个有参数的方法。但它不需要返回任何值,在main函数中直接调用它就可以了:
2、但实际上,方法不仅要定义“执行动作”,还得给main函数返回自己“加工”数据。例如下面的片段:
1 // 计算金额 2 public int getMoneys(Car[] cars, int money, int carNum) { 3 money = cars[carNum - 1].getPrice(); 4 return money;// 返回money的值 5 }
以上的getMoneys()方法执行计算金额,它不仅需要传入原始数据(车辆信息),还需要返回金额(return money),以便在main函数中打印账单。
3、方法中传值的内容是是最基础的也是最重要的,今天就搞混了,最后“多方打听”,终于搞定。
以上的截图来自《Java程序设计语言 第4版》p41.
传送一个博客:http://www.jb51.net/article/39970.htm,里面说的很详细。
另附刚做的test:
1 public class ArgsTransfer { 2 public static void main(String[] args) { 3 // TODO Auto-generated method stub 4 ArgsTransfer t = new ArgsTransfer(); 5 int a = 5; 6 int b = 10; 7 8 // 1、给实参a,b传值 ,分别传给形参i和j 9 // 2、对象t调用swap方法 10 // 3、在方法swap中i,j的值互换,并返回i的值(return i;)给main函数中的a 11 System.out.println("a=" + a + "b=" + b + "a=" + t.swap(a, b)); 12 } 13 14 public int swap(int i, int j) {// 方法只能执行动作,不能传值(向上) 15 int temp = i; 16 i = j; 17 j = temp; 18 System.out.println("swap方法执行了"); 19 System.out.println("此处i=" + i + ",j=" + j + ",i与j交换了"); 20 System.out.println("并且与main方法中的a,b无关"); 21 22 return i; 23 } 24 }
运行结果: