第一节 如何定义JAVA中的方法
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
一般情况下,定义一个方法的语法是:访问修饰符 返回值类型 方法名(参数列表){方法体}
1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴
2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值
3、 方法名:定义的方法的名字,必须使用合法的标识符
4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开
根据方法是否带参、是否带返回值,可将方法分为四类:
无参无返回值方法
无参带返回值方法
带参无返回值方法
带参带返回值方法
第二节 JAVA中无参无返回值方法的使用
如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法。
方法的使用分两步:
第一步,定义方法 public void show(){……}
注意:
1、 方法体放在一对大括号中,实现特定的操作
2、 方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母大写的形式
第二步,调用方法
当需要调用方法执行某个操作时,可以先创建类的对象,然后通过 对象名.方法名(); 来实现
第三节 JAVA中无参带返回值方法的使用
如果方法不包含参数,但有返回值,我们称为无参带返回值的方法。调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。接收方法返回值的语法一般是:
数据类型 变量名=对象.方法(); // 这样可以利用这个返回值,把返回值赋给变量。
方法的返回值最多只能有一个,不能返回多个值,类型一定要匹配,return 返回值;
第四节 JAVA中带参无返回值方法的使用
有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息才行。例如,现实生活中电饭锅可以实现“煮饭”的功能,但前提是我们必须提供食材,如果我们什么都不提供,那就真是的“巧妇难为无米之炊”了。
我们可以通过在方法中加入参数列表接收外部传入的数据信息,参数可以是任意的基本类型数据或引用类型数据。
我们先来看一个带参数,但没有返回值的方法:
调用带参方法与调用无参方法的语法类似,但在调用时必须传入实际的参数值:对象名.方法名(实参1,实参2,……实参n)
很多时候,我们把定义方法时的参数称为形参,目的是用来定义方法需要传入的参数的个数和类型;把调用方法时的参数称为实参,是传递给方法真正被处理的值。
注意:
1、 调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应
2、 调用方法时,实参不需要指定数据类型
3、 方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等
4、 当方法参数有多个时,多个参数间以逗号分隔
第五节 JAVA中带参带返回值方法的使用
如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法。
第六节 JAVA中方法的重载
什么是方法的重载呢?
如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载,如:
如何区分调用的是哪个重载方法呢?
当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如:
判断方法重载的依据:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同
4、 与方法的修饰符或返回值没有关系
第七节 附一个编程练习
要求:
1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73
2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入
3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩
运行效果:
//第一步新建scores数组对象,把元素传递进去;
//第二步直接使用Arrays.sort()方法进行排序;升序排列
//第三步正常来讲可以循环遍历每一个元素,遍历时比较大小正常则输出,不正常则去掉。
//这里可以直接使用倒着遍历,遍历直到输出三个元素停止即可
package trycatch;
import java.util.Arrays;
/**
* Created by Administrator on 2017/4/1.
*/
public class DemoScores {
public static void main(String[] args) {
//定义数组scores
int[] scores={89,-23,64,91,119,52,73};
//数组排序
Arrays.sort(scores);
System.out.println("成绩的前三名是:");
//for法循环遍历每个元素,每获得一个成绩j+1;j<3;
for(int i=(scores.length-1),j=0;i>=0&&j<3;i--){
if(scores[i]<=100&&scores[i]>=0){
System.out.println(scores[i]);
j++;
}else{
continue;
}
}
}
}