Day5_方法入门及方法重载

一、方法的入门

1.1概述及定义

具有某种特定功能的代码段。

某段代码经常使用,所以使用大括号,将这段代码包起来,起个名字。以后就使用这个名字来代替这段代码。

好处

1、提高了代码的复用性

2、提高了代码的封装性,大括号中的内容,其他调用者看不到也无法直接访问

3、简化了软件设计的思维难度

格式

java 修饰符 返回值类型 方法名称 (参数列表) { 方法体语句; return语句; }

说明

1、修饰符:现在全都写成public static

2、返回值类型:方法具有功能,有可能会有一些产出,就需要将数据返回给调用者。调用者需要知道生产出来的数据的数据类型。

3、方法名称:给这段代码起的名字。只要是一个合法的标识符即可。第一个单词的首字母小写,从第二个单词开始首字母大写。

4、参数列表:这段代码要完成功能,可能会需要一些资源。在参数列表中,需要定义一些变量,在调用本方法的时候,会由外界传入数据。

5、方法体语句:真正要完成该方法功能的执行逻辑。

6、return语句:最终生产出来的结果,要返回给调用者,使用return语句返回。如果没有任何生产内容,就可以写一个return;用于表示方法结束。

1.2方法的调用

格式

直接书写方法名称即可

方法名称(实际参数)

三种形式

1、直接调用:表示某些内容的执行,而没有生产结果的情况

2、输出调用:方法的返回值,需要打印。如果这个结果只打印一次,不做其他的操作。

3、赋值调用:方法的返回值,使用某个变量来接收。如果这个结果需要反复使用。

方法调用总体特点

方法不调用,就不执行。

注意事项

方法定义:

1、方法不能嵌套定义

2、方法的先后没有区别

3、方法的定义是平级关系

4、方法可以嵌套调用,甚至可以自己调用自己

参数列表:

1、形式参数:在定义方法时使用,需要加上数据类型的参数,也就是对于变量进行声明。各个变量之间,使用逗号分隔。

2、实际参数:在方法调用时使用,不能加上数据类型的参数,也就是对于变量进行赋值。各个实际参数之间,也使用逗号分隔。顺序必须和定义的方法的形式参数的顺序一致。

return语句:

1、语句表达方法结束了;表示方法的产出内容。

2、如果方法没有具体的返回内容,可以写成return; 此时的return语句可以省略。返回值类型必须写成void

3、如果方法有具体的返回内容,那么return后面就需要加上返回的那个数据。返回值类型必须和return语句后面的数据的数据类型一致。

4、return语句返回数据,返回给调用者。谁来调用当前方法,当前方法就将数据返回给谁。

1.3方法的练习

无参无返回值的方法

定义一个方法,打印99乘法表

```java

public static void main(String[] args) { print99(); // 方法调用 } // 该方法用来在控制台输出99乘法表 // 当一个方法不需要返回任何数据时,使用void占位 public static void print99(){ for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+""+i+"="+(ij)+"\t"); } System.out.println(); } }

```

有参无返回值的方法

定义一个方法,输出指定行数和列数的矩形 ,通过参数决定输出多少行,每行有多少个*

```java public static void main(String[] args) { printRect(5,6); // 5,6 实际参数(实参) ----->在方法运行时,是把实参赋给形参 }

public static void printRect(int row,int col){ // row 和 col 叫做形式参数(形参) for(int i=1;i<=row;i++){ for(int j=1;j<=col;j++){ System.out.print("*"); } System.out.println(); } } ```

无参数有返回值方法

定义一个方法用于获取int类型的最大值是多少

```java // 用来获取int类型的最大值 public static int getMaxInt(){ //只要是有返回值的方法就必须有return语句 return Integer.MAX_VALUE; }

public static void main(String[] args) { int num = getMaxInt(); // 那 getMaxInt()方法的返回值赋给num System.out.println(num); } ```

有参有返回值的方法

定义一个方法,用于计算两个int类型变量的和并返回

java public static void main(String[] args) { System.out.println(add(1,2)); int result = add(100,200); System.out.println(result); } //定义一个方法,完成两个整数的和计算 public static int add(int a,int b){ /* int result = a+b; return result; */ return a+b; }

注意:*框框里工具产生的,不是代码的

 二、方法的重载  overload

1.1引入

我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法。接下来通过一个案例来实现对两个整数相加、对三个整数相加以及对两个小数相加的功能

示例代码

java public static void main(String[] args) { // 下面是针对求和方法的调用 int sum1 = add01(1, 2); int sum2 = add02(1, 2, 3); double sum3 = add03(1.2, 2.3); // 下面的代码是打印求和的结果 System.out.println("sum1=" + sum1); System.out.println("sum2=" + sum2); System.out.println("sum3=" + sum3); } // 下面的方法实现了两个整数相加 public static int add01(int x, int y) { return x + y; } // 下面的方法实现了三个整数相加 public static int add02(int x, int y, int z) { return x + y + z; } // 下面的方法实现了两个小数相加 public static double add03(double x, double y) { return x + y; }

问题分析

上面的代码确实是完成功能了,但是同样是完成加法的功能,方法名却不一样,能不能把方法名变的一样呢?

答案是:可以!

那这种同一个类中的同名方法,就叫做方法重载overload


1.2重载的概念以及使用

方法重载overload:

指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。

参数列表不同:个数不同/数据类型不同/顺序不同。

重载方法调用:JVM通过方法的参数列表,调用不同的方法。

使用重载改进上面需求

```java public static void main(String[] args) { // 下面是针对求和方法的调用 int sum1 = add(1, 2); int sum2 = add(1, 2, 3); double sum3 = add(1.2, 2.3); // 下面的代码是打印求和的结果 System.out.println("sum1=" + sum1); System.out.println("sum2=" + sum2); System.out.println("sum3=" + sum3); }

    // 下面的方法实现了两个整数相加
    public static int add(int x, int y) {
    return x + y;
    }
    // 下面的方法实现了三个整数相加
    public static int add(int x, int y, int z) {
    return x + y + z;
    }
    // 下面的方法实现了两个小数相加
    public static double add(double x, double y) {
    return x + y;

总结

重载方法参数列表不同:

​ 参数个数不同,如method(int x)与method(int x,int y)不同

​ 参数类型不同,如method(int x)与method(double x)不同

​ 参数顺序不同,如method(int x,double y)与method(double x,int y)不同

注意:

add(int x, int y) 和add(int y, int x)实际一样的

重载只与方法名有关和参数类型相关与返回值无关

如void method(int x)与int method(int y)不是方法重载,不能同时存在

方法重载只与方法名和参数列表有关,和返回值/修饰符均无关(方法重载指的是在同一个类中)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值