深入理解Java带参方法--还好吧

深入理解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等类型的参数相同,需要保证形参和实参的一致。

希望有所帮助!!!
关注我,持续更新!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

7旅病娘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值