fivemethod文档

 

  • 方法格式的定义 使用

教学目标

  • 根据不同的需求定义相应的方法完成
    • 能够知道方法定义和通用格式
    • 能够使用方法完成两个较大数的获取并调用方法
    • 能够使用方法完成数组遍历并调用方法
    • 能够使用方法完成获取数组最大值并调用方法

第一章 方法入门

1.1 求两个int数据之和

public class Demo01 {
    public static void main(String[] args) {
        //定义2个int变量a和b,并初始化
        int a = 10, b = 20;
        //求和
        int sum = a + b;
        //打印结果
        System.out.println(sum);
​
        int c = 100, d = 200;
        int sum2 = c + d;
        System.out.println(sum2);
        //...
    }
}

以上代码虽然可以求出两个int数据的和,但是代码重复了,可以使用方法解决

1.2 定义方法求两个int数据之和

public class Demo02 {
    public static void main(String[] args) {
        //定义2个int变量a和b,并初始化
        int a = 10, b = 20;
        //调用方法完成求和
        int sum = getSum(a, b);
        
        //打印结果
        System.out.println(sum);
​
        int c = 100, d = 200;
        int sum2 = getSum(c, d);
        System.out.println(sum2);        
    }
    //定义方法完成计算两个int数据之和
    public static int getSum(int a, int b) {
        int result = a + b;
        return result;
    }
} 

1.3 方法的说明

/*
    定义方法需要考虑哪些问题?
        1.方法名称: 就是给方法起个名字,使用名字调用方法
        2.是否有未知数据参加运算: 
            并不清楚具体的对那两个数求和,但是调用方法时肯定会给两个int数据,
            所以定义两个int变量接收需要求和的数据
        3.是否产生结果: 两个int数据的和一定是有结果的,而且结果也必然是int类型
    
    需要注意的地方:
        1.public static: 目前固定写法
        2.int: 方法内部产生的结果的类型
        3.return result: 把结果result返回给调用的地方
    
*/
//定义方法完成计算两个int数据之和
public static int getSum(int a, int b) {
    int result = a + b;
    return result;
}

1.4 方法定义格式练习

根据以上关于方法的说明,完成方法的定义,不需要完成方法内部的功能代码
1.定义方法,计算两个double数据的最小值
2.定义方法,判断一个字符是否是字母
3.定义方法,判断一个int数字是否是偶数
4.定义方法,计算一个int数组的和
5.定义方法,计算两个int数组是否相同

1.5 方法调用格式练习

定义完毕以上方法后,我们方法方法不调用不执行,如何调用方法呢?
    方法名称(参数列表...)    

第二章 方法详解

2.1 定义方法的格式详解

修饰符 返回值类型 方法名(参数列表){
    //代码省略...
    return 结果;
}
  • 修饰符: public static 固定写法

  • 返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者

  • 参数列表:方法在运算过程中的未知数据,调用者调用方法时传递

  • return:将方法执行后的结果带给调用者,方法执行到return ,整体方法运行结束

小贴士:return 结果; 这里的"结果"在开发中,我们正确的叫法成为方法的返回值

2.2 定义方法的三个明确

  • 明确方法名称:给方法起个名字,方便调用,只要符合标识符规则就可以,尽量做到见名知意

  • 明确返回值类型:方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为int类型。

  • 明确参数列表:计算哪两个整数的和,并不清楚,但可以确定是整数,参数列表可以定义两个int类型的变量,由调用者调用方法时传递

2.3 方法练习一

2.3.1 计算两个int数据的最大值

/*
    方法格式的详细介绍:
        1.概念: 就是功能,把一段代码,使用{}括起来,起个名字,方便使用
        2.格式:
            修饰符 返回值类型 方法名称(参数列表...){
                //方法体;
                return 结果数据;
            }
​
        3.格式解释:
            (1)修饰符: public static 目前是固定写法,先记住
            (2)返回值类型: 方法内部产生的结果(给调用处)的数据的类型
            (3)方法名称: 就是一个标识符,方便调用方法
            (4)参数列表:
                定义一个或者多个变量,用来接收调用者调用方法时,传递的具体数据的
            (5)return 结果数据: 把最终方法内部计算的结果数据,返回给调用处/者
​
        4.方法的调用:
            把方法调用后,产生的结果数据保存到左侧的变量中
            数据类型 变量名称 = 方法名称(参数列表...);
​
        5.考虑三要素:
            (1)方法名称:
            (2)是否有未知数据参加运算:
            (3)是否产生结果数据:
​
        6.练习:
            定义方法计算两个int数据的最大值
 */
public class Demo03MethodMax {
    public static void main(String[] args) {
​
        System.out.println("main...start....");
​
        int m = 50, n = 100;
​
        //调用方法,传递两个int变量
        int max = getMax(m, n);
​
        System.out.println("最大值: " + max);
​
        System.out.println("main...end...");
    }
​
    /*
        定义方法计算两个int数据的最大值
        三要素:
            (1)方法名称:    getMax
            (2)是否有未知数据参加运算: int a, int b
            (3)是否产生结果数据:    int
     */
    public static int getMax(int a, int b) {
        //使用三元运算符计算2个int数据的最大值
        int result = (a > b) ? a : b;
        return result;//把结果数据result返回给调用处
    }
}
​

2.3.2 计算一个int数据是否是偶数

package com.itheima03;
​
/*
    计算一个int数据是否是偶数
 */
public class Demo04MethodOu {
    public static void main(String[] args) {
​
        System.out.println("main....start....");
​
        int num = 100;
​
        //调用方法isOu,传递num,获取结果保存到boolean变量result中
        boolean result = isOu( num );
​
        System.out.println(num + " 是否是偶数? " + result);
​
        System.out.println("main....end....");
    }
​
    /*
        计算一个int数据是否是偶数
        三要素:
            (1)方法名称:                isOu
            (2)是否有未知数据参加运算:   int num
            (3)是否产生结果数据:         boolean
     */
    public static boolean isOu(int num) {
        //使用三元运算符,计算num是否是偶数
        boolean result = (num % 2 == 0) ? true : false;
​
        return result;//把结果数据result返回给调用这
    }
}

2.4 方法练习二

2.4.1 定义方法,打印从数字1到指定大于1的int数字范围内的所有数字

package com.itheima03;
/*
    需求:
        定义方法,打印从数字1到指定大于1的int数字范围内的所有数字

    三要素:
        (1)方法名称:
        (2)是否有未知数据参加运算:
        (3)是否产生结果数据:

    注意:
        1.分析需求时,发现方法内部没有产生具体的结果数据,返回值类型必须写成void
        2.方法内部可以写return ; 但是建议省略,绝对不能写 return 数据;
 */
public class Demo05PrintNum {
    public static void main(String[] args) {
        System.out.println("main...start...");

        int a = 10;

        printNum(a);

        System.out.println("main...end...");
    }

    /*
        定义方法,打印从数字1到指定大于1的int数字范围内的所有数字
        三要素:
        (1)方法名称:                printNum
        (2)是否有未知数据参加运算:   int n
        (3)是否产生结果数据:         没有具体的结果数据,此时返回值类型必须写为void
     */
    public static void printNum(int n) {
        //for循环
        for (int i = 1; i <= n; i++) {
            System.out.println(i);
        }

        //return ;//结束方法,返回到方法的调用处,但是并没有带回具体的结果数据,建议省略
    }
}

2.4.2 定义方法,将一个int数字指定给一个int数组的每个元素

package com.itheima03;

import java.util.Arrays;

/*
    需求:
        定义方法,将一个int数字指定给一个int数组的每个元素

    三要素:
        (1)方法名称:
        (2)是否有未知数据参加运算:
        (3)是否产生结果数据:

    注意:
        1.分析需求时,发现方法内部没有产生具体的结果数据,返回值类型必须写成void
        2.方法内部可以写return ; 但是建议省略,绝对不能写 return 数据;
 */
public class Demo06FillArray {
    public static void main(String[] args) {
        System.out.println("main...start...");
        int[] arr = new int[10];
        System.out.print("数组元素默认值: ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        //调用fillArray方法,把数组中的所有元素值都修改为1000
        int num = 1000;
        fillArray(arr,num);
        System.out.print("数组元素修改后的值: ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
        System.out.println("main...end...");
    }

    /*
        定义方法,将一个int数字指定给一个int数组的每个元素
        三要素:
        (1)方法名称:                fillArray
        (2)是否有未知数据参加运算:   int[] array,int value
        (3)是否产生结果数据:         没有具体的结果数据,此时返回值类型必须写为void
     */
    public static void fillArray(int[] array, int value) {
        for (int i = 0; i < array.length; i++) {
            array[i] = value;
        }
        return ;//结束方法,返回到方法的调用处,建议省略
    }
}

2.4.3 定义方法,介绍黑马程序员昌平校区的地址

"昌平区北七家镇七北路42号TBD云集中心2号楼3单元3层"

package com.itheima03;
/*
    需求:
        定义方法,介绍黑马程序员昌平校区的地址
        "昌平区北七家镇七北路42号TBD云集中心2号楼3单元3层"

    三要素:
        (1)方法名称:                print
        (2)是否有未知数据参加运算:   没有未知数据参加运算,没有参数,不用写参数列表,但是必须保留()
        (3)是否产生结果数据:        没有具体的结果数据,此时返回值类型必须写为void

    注意:
        1.分析需求时,发现方法内部没有产生具体的结果数据,返回值类型必须写成void
        2.方法内部可以写return ; 但是建议省略,绝对不能写 return 数据;

    没有返回值没有参数的方法调用
        方法名称();
 */
public class Demo07PrintInfo {
    public static void main(String[] args) {
        System.out.println("main...start...");
        //调用方法,打印信息
        print();
        System.out.println("main...end...");
    }
    //定义方法,介绍黑马程序员昌平校区的地址
    public static void print() {
        System.out.println("昌平区北七家镇七北路42号TBD云集中心2号楼3单元3层");
        return ;//结束方法,返回到方法的调用处
    }
}

第三章 方法知识补充

3.1 定义方法的注意事项

  • 方法不能嵌套定义

public class MethodDemo {
    public static void main(String[] args) {

    }

    public static void methodOne() {
		public static void methodTwo() {
       		// 这里会引发编译错误!!!
    	}
    }
}
  • 返回值类型,必须要和return语句返回的类型相同,否则编译失败 。

// 返回值类型要求是int
public static int getSum() {
    return 5;// 正确,int类型
    return 1.2;// 错误,类型不匹配
    return true;// 错误,类型不匹配
}
  • 不能在return 后面写代码,return 意味着方法结束,所有后面的代码永远不会执行,属于无效代码。

public static int getSum(int a,int b) {
  	return a + b;
  	System.out.println("Hello");// 错误,return已经结束,这里不会执行,无效代码
}
  • void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据

public class MethodDemo {
    public static void main(String[] args) {

    }
    public static void methodTwo() {
        //return 100; 编译错误,因为没有具体返回值类型
        return;	
        //System.out.println(100); return语句后面不能跟数据或代码
    }
}

3.2 方法的调用方式

3.2.1 有返回值的方法调用

/*
    有返回值的方法的调用
        1.赋值调用: 把调用有返回值方法的返回的结果赋值给左侧的变量         ---推荐使用---
            数据类型 变量名称 = 方法名称(参数列表....)

        2.打印/输出调用: 把调用有返回值方法的返回的结果直接交给输出语句
            System.out.println(方法名称(参数列表....));

        3.单独/独立/直接调用: 直接调用有返回值方法,对结果数据没有任何处理(丢失了结果)       ---不推荐使用---
            方法名称(参数列表....);
 */
public class Demo05MethodInvoke {
    public static void main(String[] args) {
        //定义2个int变量,并初始化
        int m = 10, n = 20;
        //1.赋值调用: 传递变量
        int sum = getSum(m, n);
        System.out.println("和: " + sum);
        //复制调用后: 可以对结果数据进行其它相关处理

        //1.赋值调用: 传递常量
        int sum2 = getSum(100, 200);
        System.out.println("和: " + sum2);
        System.out.println("-----------------");

        //2.输出调用: 传递变量
        System.out.println("和: " + getSum(m, n));
        System.out.println("和: " + getSum(100, 200));
        System.out.println("-----------------");

        //3.单独/独立/直接调用: 传递变量
        getSum(m,n);

        //3.单独/独立/直接调用: 传递常量
        getSum(100,200);
    }

    //定义方法,计算2个int数据的和
    public static int getSum(int a, int b) {
        int sum = a + b;
        return sum;
    }
}

3.2.2 无返回值的方法调用

/*
    无返回值的方法调用方式
       1.单独/独立/直接调用: 直接调用有返回值方法,对结果数据没有任何处理   ---只能使用这种方式---
           方法名称(参数列表....);

       2.赋值调用: 把调用有返回值方法的返回的结果赋值给左侧的变量         ---代码语法格式错误---

       3.打印/输出调用: 把调用有返回值方法的返回的结果直接交给输出语句     ---代码语法格式错误---
 */
public class Demo06MethodInvoke {
    public static void main(String[] args) {
        //1.单独/独立/直接调用
        print();
        //2.赋值调用: 错误的
        //void v = print();//void根本就不是数据类型
        //3.打印/输出调用: 错误的
        //System.out.println(print());
    }
    //定义方法,介绍黑马程序员昌平校区的地址
    public static void print() {
        System.out.println("昌平区北七家镇七北路42号TBD云集中心2号楼3单元3层");
        return ;//结束方法,返回到方法的调用处
    }
}
  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值