edcoder-java入门-方法的使用

相关知识

为了完成本关任务你需要掌握:1. 什么是方法; 2. 怎么定义和使用方法。

我们现阶段编写的代码都是放在main函数中,不过如果我们要做一个大型的项目,把所有的代码都放入main方法中有什么缺陷呢?

  1. 代码庞大;
  2. 难以阅读;
  3. 难以维护;
  4. 代码难以重用;
  5. 不利于合作开发。

怎么解决呢? 将庞大的程序划分为不同的功能小块,逐个突破,就像手机和电脑一样,把一整个电脑拆分成一个个的小功能块,例如内存,CPU等。然后在主板中将这些功能模块组合。 这里主板就相当于main方法,CPU,内存这些模块,就相当于我们自己定义的方法,接下来我们就来认识一下Java中的方法吧!

什么是方法?

方法也叫函数,就是用来解决一类问题的代码的有序组合,是一个功能模块

怎么定义和使用方法

一般情况下,定义一个方法的语法是:

 

调用方法:

 

输出:

welcome to educoder

第一关:

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,定义一个方法名为hello的方法用来和老师打招呼; 调用此方法输出如下结果:

hello teacher!

代码块: 

public class HelloWorld {
	/********** Begin **********/
    public static void helloTeacher(){
    //定义一个方法,用来和老师打招呼
        System.out.println("hello teacher!");
    }
	/********** End **********/	
    public static void main(String[] args) {

		/********** Begin **********/	
		
        //调用方法 
        helloTeacher();
		/********** End **********/
    }
}

第二关:

相关知识

如果方法不包含参数,但有返回值,我们称为无参带返回值的方法。

例如:下面的代码,定义了一个方法名为 numberPlus ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果。

numberPlus() 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值。

调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。如:

一定不可忽视的问题

1、 如果方法的返回类型为 void ,则方法中不能使用 return 返回值!

2、 方法的返回值最多只能有一个,不能返回多个值。

 

3、 方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值。

 

编程要求

请根据任务描述 ,在编辑器Begin-End中定义一个名为 calcAvg 的方法,用来计算两门课程成绩的平均值,并返回结果。

测试说明

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

需要你的程序输出:

平均成绩为:87.75

代码块:

public class HelloWorld {

    public static void main(String[] args) {
		/********** Begin **********/

        // 调用calcAvg()方法,并将返回值保存在变量avg中
        double avg = calcAvg();
		/********** End **********/
    	System.out.println("平均成绩为:" + avg);
    }

    // 定义一个返回值为double类型的方法
	/********** Begin **********/
    public static double  calcAvg() {
        double java = 92.5;
        double php = 83.0;
        double avg = (java + php) / 2; // 计算平均值

        // 使用return返回值
        return avg;

	/********** End **********/
    }
}

 第三关:

掌握有参数无返回值方法的调用

相关知识

有时方法的执行需要依赖于某些条件,就像生活中我们做一件事情时,也许需要前提条件,而方法的参数就相当于前提条件。

我们先来看一个带参数,但没有返回值的方法:

2、 调用方法时,实参不需要指定数据类型。

3、 方法的参数可以是基本数据类型,如 intdouble 等,也可以是引用数据类型,如 String数组等。

4、 当方法参数有多个时,多个参数间以逗号分隔。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,编写并调用求平均值的方法,传入两门成绩,求出平均值。

测试说明

测试输入:90,80 预期输出: 平均分:85

测试输入:100,90 预期输出: 平均分:95

代码块:

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
		  Scanner sc = new Scanner(System.in);
        int score1 = sc.nextInt(); //第一门成绩
        int score2 = sc.nextInt(); //第二门成绩
        /********** Begin **********/
        // 调用方法,传入两门课程的成绩
        calcAvg(score1,score2);
        /********** End **********/
    }

    /*
     * 功能:计算两门课程考试成绩的平均分并输出平均分
     * 定义一个包含两个参数的方法,用来传入两门课程的成绩
     */

    /********** Begin **********/
    public static void calcAvg(int number1,int number2){
        int sum=number1+number2;
        int Avg=sum/2;
        System.out.println("平均分:"+Avg);
    }
    /********** End **********/

}

 第4关:

掌握有参数有返回值方法的调用

怎么定义有参数有返回值的方法

如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法。

例如:下面的代码,定义了一个 welcome 方法,带有一个参数 name ,方法执行后返回一个 String 类型的结果。

怎么调用

调用带参带返回值的方法:

 运行结果为: 欢迎你张三丰

编程要求

Begin-End区域创建一个 名为getMax的方法,以两个整数作为参数, 返回两个整数变量较大的值,最后在main方法中调用该方法,传入输入的数据。

测试说明

测试输入:5,4 预期输出: 5和4比较,最大值是:5

测试输入:2,3 预期输出: 2和3比较,最大值是:3

代码块:

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int i = sc.nextInt();   //获取第一个输入的整数
        int j = sc.nextInt();	//获取第二个输入的整数
		
		/********** Begin **********/
		//在这里调用方法获取返回值
        getMax(i,j);
        System.out.println( i+"和"+j+"比较,最大值是:" +getMax(i,j));
		/********** End **********/
    }

	/*在这里创建getMax方法,以两个整数作为参数,返回两个整数中较大的值*/
    public static int getMax(int number1,int number2){
	/********** Begin **********/
	int max;
    if(number1>number2){
        max=number1;
    }else{
        max=number2;
    }
        return max;
    }

    /********** End **********/
}

 第五关:

掌握数组作为参数的使用

任务描述

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

相关知识

  • 数组作为参数的样例:

 

实现思路

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

提示

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

编程要求

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

测试说明

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

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

代码块:

import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
     
        int[] scores={79,52,98,81};
		/********** Begin **********/
        //调用方法,传入成绩数组,并获取成绩的个数
        int count=sort(scores);
		/********** End **********/
        System.out.println("共有"+count+"个成绩信息!");
    }

    /*
     * 功能:将考试成绩排序并输出,返回成绩的个数
     * 
     */
	/********** Begin **********/	
    public  static int sort(int scores[]){
       // 数组从小到大排序处理(选择排序)
        for (int i = 0; i < scores.length - 1; i++) {
            int min = i;
            for (int j = i + 1; j < scores.length; j++) {
                if (scores[min] > scores[j]) {
                    int temp = scores[min];
                    scores[min] = scores[j];
                    scores[j] = temp;
                }
            }
        }
       // 打印出数组
       System.out.println(Arrays.toString(scores));
       //返回数组中元素的个数
       int number=0;
        for(int k=0;k<scores.length;k++){
            number++;
        }
        return number;
    }
	/********** End **********/
}

 第6关:

方法的重载

判断方法重载的依据:

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

2、 方法名相同;

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

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

敲黑板

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


编程要求

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

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

测试说明

预期输出:

 代码块:

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 str){
        System.out.println("带有一个字符串参数的print方法,参数值为:"+str);
    }
    // 整型print方法的定义
    public static void print(int number){
        System.out.println("带有一个整型参数的print方法,参数值为:"+number);
    }
    /********** End **********/
}

 第七关:

第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乘法表

测试输入:

预期输出:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dark_Jun_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值