类的多中带参方法
语法:
访问修饰符 返回类型 方法名(形式参数列表){
//方法主体
}
返回类型:int double String boolean 数组 对象 等 只能有一个
形参类型: int double String boolean 数组 对象 等,且个数不限
单个参数的传入
1.定义一个榨汁机类,包含榨汁方法:传入水果名,返回对应的果汁
public class ZhazhiJi {
//传入水果名,返回对应的果汁
public String zhazhi(String fruit){
String juice=fruit+"汁";
return juice;
}
}
2.定义一个测试类,传入水果参数调用榨汁方法
// 测试榨汁机类的榨汁方法
public static void main(String[] args) {
String fruit="苹果";//定义苹果,作为参数传入榨汁方法
ZhazhiJi zhazhiJi=new ZhazhiJi();//创建榨汁机实例
String juice=zhazhiJi.zhazhi(fruit);//调用榨汁方法,获得果汁
System.out.println(juice);//输出果汁
}
}
结果为:
传入多个参数
实例:
数组作为参数的传入
1.定义一个包含计算成绩的方法的类,通过接受成绩的数组来计算出平均分和最高分
//接受成绩数组,返回平均成绩和最高成绩
public class ArrayArgs {
//接受成绩的数组,返回平均成绩
public double avg(double[] grades){
double sum=0;
for (int i = 0; i < grades.length; i++) {
sum+=grades[i];
}
return sum/grades.length;
}
//接受五个成绩的数组,返回最高成绩
public double best(double[] grades){
double best=0;
for (int i = 0; i < grades.length; i++) {
if(grades[i]>best){
best=grades[i];
}
}
return best;
}
}
2.定义一个测试类,调用上面的计算平均分和最高分的方法
import java.util.Scanner;
public class ArrayArgsTest {
public static void main(String[] args) {
//
double[] grades=new double[5];//创建需要传入的成绩数组
Scanner input=new Scanner(System.in);
System.out.println("请输入五名参赛者的成绩:");
//从终端输入接受成绩赋值给成绩数组
for(int i=0;i<5;i++){
double grade=input.nextDouble();
grades[i]=grade;
}
ArrayArgs args2=new ArrayArgs();//创建计算成绩的类实例
System.out.println("平均分:"+args2.avg(grades));//调用计算平均分的方法并输出平均分
System.out.println("最高分:"+args2.best(grades));//调用计算最高分的方法并输出最高分
}
}
结果:
对象作为参数的情况
1.定义一个学生类,包含属性学号、姓名、年龄、成绩,包含一个打印学生信息的方法
public class Student {
public int id;
public String name;
public int age;
public double grade;
public void showInfo(){
System.out.println("学号:"+id+"姓名:"+name+"年龄:"+age+"成绩:"+grade);
}
}
2.定义一个包含对学生对象操作的管理类,包含一个成员变量是学生对象数组,包含一个方法可以添加学生进这个数组,第二个方法可以打印对象数组中包含的所有学生的信息
public class ObjectArgs {
Student[] students=new Student[30];// 创建一个学生对象数组
//定义一个方法可以添加学生进学生数组
public void addStudent(Student student){
for (int i = 0; i < students.length; i++) {
if(students[i]==null){
students[i]=student;
System.out.print("添加成功!");
break;
}
}
}
打印学生数组中所有学生的信息
public void showStudent(){
for (int i = 0; i < students.length; i++) {
if(students[i]!=null){
students[i].showInfo();
}
}
}
}
3.定义测试类,调用上面的addStudent方法
public class ObjectArgsTest {
public static void main(String[] args) {
Student tom=new Student();//创建学生的实例
ObjectArgs objectArgs=new ObjectArgs();//创建学生管理类实例
tom.name="tom";
tom.id=1;
tom.grade=90;
tom.age=18;
objectArgs.addStudent(tom);//调用添加学生的方法
objectArgs.showStudent();//调用打印所有学生信息的方法
}
}
运行结果:
注:
1.调用方法时不能指定实参类型!
2.形参和实参数据类型、个数要保持一致!
3.调用方法后要对有返回值的作处理!不作处理会报错。