9:方 法
9.1:方法是什么
方法就是对象所具有的动态功能。
9.2:定义规则
Java 类中方法的声明采用以下格式:访问修饰符 修饰符 返回值类型 方法名称 (参数列表) throws 异常列表 {方法体}
访问修饰符:可以使用四种不同的访问修饰符中的一种,包括 public(公共的)、protected(受保护的) ,无修饰符和 private(私有的) 。public 访问修饰符表示方法可以从任何其它代码调用。private 表示方法只可以由该类中的其它方法来调用。protected 将在以后的课程中讨论。
修饰符:是对方法特性的描述,例如后面会学习到的:static、final、abstract、synchronized 等等。
返回值类型::表示方法返回值的类型。 如果方法不返回任何值, 它必须声明为 void(空)。
Java 技术对返回值是很严格的,例如,如果声明某方法返回一个 int 值,那么方法必须从所有可能的返回路径中返回一个 int 值(只能在等待返回该 int 值的上下文中被调用。 )
方法名称:可以是任何合法标识符,并带有用已经使用的名称为基础的某些限制条件。
参数列表:允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符。在下面的方法中只有一个形式参数,用 int 类型和标识符 days 来声明:public void test(int days){}
throws 异常列表:子句导致一个运行时错误(异常)被报告到调用的方法中,以便以合适的方式处理它。异常在后面的课程中介绍。
花括号内是方法体,即方法的具体语句序列。
9.3:示例
比如现在有一个“车”的类——Car, “车”具有一些基本的属性,比如四个轮子,一个方向盘,车的品牌等等。当然,车也具有自己的功能,也就是方法,比如车能够“开动”——run。要想车子能够开动,需要给车子添加汽油,也就是说,需要为 run 方法传递一些参数“油”进去。车子跑起来过后,我们需要知道当前车辆运行的速度,就需要 run 方法具有返回值“当前的速度” 。
9.4:形参和实参
形参:就是形式参数的意思。是在定义方法名的时候使用的参数,用来标识方法接收的参数类型,在调用该方法时传入。
实参:就是实际参数的意思。是在调用方法时传递给该方法的实际参数。
比如:上面的例子中“int oil”就是个形式参数,这里只是表示需要加入汽油,这个方法才能正常运行,但具体加入多少,要到真正使用的时候,也就是调用这个方法的时候才具体确定,加入调用的时候传入“80” ,这就是个实际参数。
形参和实参有如下基本规则:
(1):形参和实参的类型必须要一致,或者要符合隐含转换规则
(2):形参类型不是引用类型时,在调用该方法时,是按值传递的。在该方法运行时,形参和实参是不同的变量,它们在内存中位于不同的位置,形参将实参的值复制一份,在该方法运行结束的时候形参被释放,而实参内容不会改变。
(3):形参类型是引用类型时,在调用该方法时,是按引用传递的。运行时,传给方法的是实参的地址, 在方法体内部使用的也是实参的地址, 即使用的就是实参本身对应的内存空间。所以在函数体内部可以改变实参的值。
9.5:参数可变的方法
从 JDK5.0 开始,提供了参数可变的方法。
当不能确定一个方法的入口参数的个数时,5.0 以前版本的 Java 中,通常的做法是将多个参数放在一个数组或者对象集合中作为参数来传递,5.0 版本以前的写法是:
int sum(Integer[] numbers){…}
//在别处调用该方法
sum(new Integer[] {12,13,20});
而在 5.0 版本中可以写为:
int sum(Integer... numbers){//方法内的操作}
注意:方法定义中是三个点
//在别处调用该方法
sum(12,13,20);//正确
sum(10,11); //正确
也就是说,传入参数的个数并不确定。但请注意:传入参数的类型必须是一致的,究其本质,就是一个数组。
显然,JDK5.0 版本的写法更为简易,也更为直观,尤其是方法的调用语句,不仅简化很多,而且更符合通常的思维方式,更易于理解。
推荐阅读:
2018年3月计算机二级考试JAVA入门知识点:JAVA键盘事件
2018年3月计算机二级考试JAVA入门知识点:Java运算符
2018年3月计算机二级考试JAVA入门知识点:Java滚动条
2018年3月计算机二级考试JAVA入门知识点:Java对话框
2018年3月计算机二级考试JAVA入门知识点:java流程控制
出国留学网计算机等级考试 栏目推荐: