Java入门(第九章)- 方法的使用5-8关

第5关:掌握数组作为参数的使用


任务描述

本关任务:将考试成绩排序并输出,返回成绩的个数。

相关知识

  • 数组作为参数的样例:
 
  1. public static void main(String[] args) {
  2. // 调用方法时传递一个数组
  3. int [] arrayData = {1 ,2 ,3 };
  4. arrayManage(arrayData);
  5. }
  6. public static void arrayManage(int [] data){
  7. for(int i = 0 ; i < data.length ;i++){
  8. // 打印数组
  9. System.out.println(data[i]);
  10. }
  11. }
  • 输出结果。
    1
    2
    3

实现思路

  • 定义一个带有数组参数的方法;
  • 在方法内部参考第八章数组排序将数组排序,并且打印;
  • 返回数组的长度信息。

提示

快速输出数组的方法:
System.out.println(Arrays.toString(要输出的数组));


验货啦,验货啦,开始你的任务吧!

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,程序给出了部分代码,您需要参照实现思路达到 任务描述的需求。

测试说明

程序会对你编写的代码进行测试:

需要你的程序输出下图所示:


开始你的任务吧,祝你成功!

代码:

package setp10;

import java.util.Arrays;

public class HelloWorld {

    public static void main(String[] args) {

     HelloWorld hello=new HelloWorld();

        int[] scores={79,52,98,81};

        /********** Begin **********/

        //调用方法,传入成绩数组,并获取成绩的个数

        int count= hello.sort(scores);

        /********** End **********/

        System.out.println("共有"+count+"个成绩信息!");

    }

    /*

     * 功能:将考试成绩排序并输出,返回成绩的个数

     * 

     */

    /********** Begin **********/   

    public static int sort(int[] data    ){

       for(int i=0;i<data.length-1;i++)

           for(int j=i+1;j<data.length;j++){

               if(data[i]>data[j]){

                   int temp=data[i];

                   data[i]=data[j];

                   data[j]=temp;

               

           }

       }

       // 打印出数组

System.out.print("[");

       //返回数组中元素的个数

for(int i=0;i<data.length-1;i++)

    System.out.print(data[i]+", ");

    System.out.print(data[3]+"]");

    System.out.println();

return data.length;

    }

    /********** End **********/

}

第6关:方法的重载


任务描述

本小节需要你掌握一个Java方法重载的小程序,在每一个重载的方法中打印相应的语句。

相关知识

问: 什么是方法的重载呢?

答: 如果同一个类中包含了两个或两个以上方法名相同,方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。如下所示 3 个方法名称都为 print ,但方法的参数有所不同,因此都属于方法的重载:

问: 如何区分调用的是哪个重载方法呢?

答: 当调用被重载的方法时,Java会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如:

 
  1. public static void main(String[] args) {
  2. // 调用无参的方法
  3. print();
  4. // 调用带有一个字符串参数的方法
  5. print("小强");
  6. // 调用带有一个整型参数的方法
  7. print("老肖",38);
  8. }

运行结果:

无参的print方法
带有一个字符串参数的print方法,参数值为:小强
您好老肖,今年38岁

判断方法重载的依据:

1、 必须是在同一个类中;

2、 方法名相同;

3、 方法参数的个数、顺序或类型不同;

4、 与方法的修饰符或返回值没有关系。

敲黑板

方法重载:在同一个类中,方法名相同,参数类型不同


编程要求

在编辑器Begin-End处对print方法进行重载,并通过传入不同的参数调用匹配的重载方法。

请在相应行中将代码填写完整。

测试说明

预期输出:


开始你的任务吧,祝你成功!

代码:

package setp15;

/**

 * @author tangzhiqiang

 * @date 2018-04-25 22:31

 */

public class HelloWorld {

    public static void main(String[] args) {

        /********** Begin **********/

        // 调用无参的方法

        print();

        // 调用带有一个字符串参数的方法   

       print("educoder");

        // 调用带有一个整型参数的方法

       print(666);

        /********** End **********/

    }

    /********** Begin **********/

    // 无参print方法的定义

public static void print(){

   System.out.println("无参的print方法");

}

    // 字符串print方法的定义

public static void print(String name){

    System.out.println("带有一个字符串参数的print方法,参数值为:"+name);

}

    // 整型print方法的定义

public static void print(int id){

    System.out.println("带有一个整型参数的print方法,参数值为:"+id);

}

    

    /********** End **********/

}

第7关:选择题

答案:BDE

第8关:方法通关挑战


任务描述

本关任务:

  1. 定义一个方法,接收两个int类型的参数 ab,求两个数的和,方法名为:getSum

  2. 定义一个方法,接收三个double类型参数abc, 返回这三个数的平均值 返回值类型为double,方法名为:getAvg

  3. 定义一个方法,接收两个整数 a b 打印ab列的一个矩形,方法名为:printRect

  4. 定以一个方法,接收整形数组为参数,对这个数组进行升序排序,最后输出该数组,方法名为:sortArr

  5. 定义一个方法,完成99乘法表的打印,方法名为 :Print99

相关知识

编程要求

根据任务描述,在右侧编辑器Begin-End处补充代码,定义五个方法,并编写代码实现方法对应的功能,达到输出要求。

测试说明

我会对你编写的代码进行测试:
第一题:求和

测试输入:1,2

预期输出:
3

第二题:求平均值

测试输入:1,2,3
预期输出:
2.0

第三题:输出矩形

测试输入:2,3

预期输出:
***
***

第四题:数组升序排序

测试输入:5,7,12,9,32

预期输出:
5
7
9
12
32

第五题:打印99乘法表

测试输入:

预期输出:


终极BOSS 等你来通关,开始你的任务吧!!!

代码:

package setp17;

import java.util.Arrays;

import java.util.Scanner;

public class HelloWorld {

    /********** Begin **********/

    /**

     * 第一题:定义一个方法 接收两个整数类型的参数 a和b,返回两个数的和  返回值类型为int 方法名为:getSum

     */

    public static int getSum(int a ,int b){

        int sum = a + b;

        return sum;

     }

    /**

     * 第二题: 定义一个方法 接收三个double类型参数a,b,c, 返回这三个数的平均值 返回值类型为double 方法名为:getAvg

     */

    public static double getAvg(double a ,double b,double c){

        double avg = (a + b + c) / 3;

        return avg;

    }

    /**

     * 第三题: 定义一个方法 接收两个参数 a 和b 打印a行 b列的一个矩形  不需要返回值   方法名为:printRect

     */

    public static void printRect(int a , int b){

        for (int i = 1 ; i <= a ;i++) {

            for (int k = 1 ; k <= b;k++){

                System.out.print("*");

            }

            System.out.println();

        }

    }

    /**

     * 第四题:定以一个方法,接收整形数组 为参数  对这个数组进行升序排序  最后输出该数组 不需要返回值 方法名为 sortArr  

     */

    public static void sortArr(int[] arr){

        for(int i = 0; i< arr.length-1;i++){

            for(int j = i+1; j< arr.length;j++){

                if(arr[i] > arr[j]){

                     int tmp = arr[i];

                    arr[i] = arr[j];

                    arr[j] = tmp;

                }

            }

        }

        for(int i = 0; i< arr.length;i++){

                System.out.println(arr[i]);

        }

    }

    /**

     *  第五题

     * 你只需要实现for 循环括号的内容就可 ,打印语句系统已经给你完成 

     */

    public static void Print99() {

        for (int i = 1 ; i<=9;i++) {

            for (int j = 1;j <= i ;j++) {

                System.out.print(j + " * " + i + " = " + i * j + "\t");

            }

            System.out.println();

        }

    }

    /********** End **********/

}    

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值