深入理解Java带参方法
前言
有几天没更新了,实在抱歉。最近在搞一个创业项目的比赛,经历了无数的坎坷终于拿出一个还算像样的策划书。这几天耽误了不少,今天来弥补一下空虚的博客,希望有所帮助。
(本文中如有任何错误的说法,还请路过的大佬不吝赐教,感激不尽感激不尽)
一、数组作为参数的方法
废话不多说了,直接举个栗子上代码就OK了,勿喷勿喷!!!
提出问题:
就拿我这次的创业项目比赛来举栗子吧。比如有五名学生参加了竞赛,输出平均成绩和最高成绩。
分析一下:
将多了个类型相同的数值类型的数据存储在数组中,并且对其求和、求平均值、最大值、最小值等是实际应用中常见的操作,可以设计求总和、求平均值、求最大值、求最小值等方法。并把数组作为参数,这样便可以在多种场合下调用这些方法。
来吧,展示!!!
代码示例:
public class StudentBiz { //创建类
/**
* 求平均分
* @param scores 参赛成绩数组
* @return
*/
public double calAge(int[] scores){ //创建求平均成绩方法
int sum = 0;
double avg = 0.0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
avg = (double)sum/scores.length;
return avg;
}
/**
* 求最高分
* @param scores
* @return
*/
public int calMax(int[] scores){ //创建求最高分方法
int max = scores[0];
for (int i = 0; i < scores.length; i++) {
if (max < scores[i]){
max = scores[i];
}
}
return max;
}
}
测试类:
import java.util.Scanner; //导包
public class TestCal { //创建测试类
public static void main(String[] args) { //主方法
StudentBiz st = new StudentBiz(); //创建对象
int[] scores = new int[5]; //擦黄建数组保存比赛成绩
Scanner input = new Scanner(System.in);
System.out.println("请输入五名参赛者的成绩:");
for (int i = 0; i < 5; i++) { //循环输入
scores[i] = input.nextInt();
}
//输出平均成绩
double avgScore = st.calAge(scores); //调用calAvg方法
System.out.println("平均成绩" + avgScore);
//输出最高成绩
int maxScore = st.calMax(scores); //调用calAvg方法
System.out.println("最高成绩" + maxScore);
}
}
运行结果:
- StudengtBiz中定义了两个方法,分别实现了求平均成绩和最高成绩,他们都是戴参数的方法,并且带返回值的方法。
- 参数scores数组传递所有成员的比赛成绩,而且定义方法时并没有指定数组大小,而是在调用方法时确定要传递的数组的大小。return语句用来返回平均成绩和最高成绩。
二、对象作为参数的方法
我没有什么想说的,展示就好!!!
代码示例:
学生类
/**
* 学生类
*/
class Student {
public int id;
public String name;
public int age;
public int score;
//输出
public void showInfo() {
System.out.println(id + "\t" + name + "\t" + age + "\t" + score);
}
}
学生管理类
/**
* 学生管理类
*/
public class StudentBiz {
Student[] students = new Student[30];
/**
* 增加一个学生
* @param stu 一个学生
*/
public void addStudent(Student stu){
for (int i = 0; i < students.length; i++) {
if (students[i] == null){
students[i] = stu;
break;
}
}
}
/**
* 显示学生信息
*/
public void showStudents(){
System.out.println("学生列表:");
for (int i = 0; i < students.length; i++) {
if (students[i] != null){
students[i].showInfo();
}
}
System.out.println();
}
}
测试类:
/**
* 测试类
*/
public class TestAdd {
public static void main(String[] args) {
//实例化学生对象并且初始化
Student student1 = new Student();
student1.id = 10;
student1.name = "7旅病娘";
student1.age = 18;
student1.score = 90;
Student student2 = new Student();
student2.id = 15;
student2.name = "颜歧";
student2.age = 18;
student2.score = 60;
//新增学生对象
StudentBiz studentBiz = new StudentBiz();
studentBiz.addStudent(student1);
studentBiz.addStudent(student2);
//显示学生信息
studentBiz.showStudents();
}
}
运行结果:
- 学生管理类中, Student[] students = new
Student[30];表示声明了大小为30的学生对象数组,即数组students可以存储30个学生对象。 - 方法addStudent(Student
stu)带有一个Student类型的参数,调用时将传递一个学生对象。这里的Student类型的参数与前面学习的int、String等类型的参数相同,需要保证形参和实参的一致。