你的位置:首页 > Java教程

[Java教程]Java中的方法“实践”


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   }

View Code

 以上的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   }

View Code

 以上的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   }

View Code

以上的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函数中的a11     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 }

View Code

运行结果: