您的位置 首页 java

“全栈2019”Java第三十三章:方法

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

1.方法

什么是方法?

方法就是做某些事情的方式。

方法有别名吗?

有,“函数”是方法的别名。比如,你定义了一个方法,也可以叫“你定义了一个函数”。

方法的定义格式:

演示:

main方法也是我们接触到的第一个Java方法。

  • “public static”是访问修饰符。
  • “void”是返回值类型。void表示无返回值。
  • “main”是方法名,小括号里面的是参数列表,参数列表是以参数的数据类型和参数名组成,多个参数以逗号隔开。
  • 大括号{}里面的是方法体。
  • 当方法没有返回值时,return可以省略不写,也可以写成“return;”

2.调用方法

下面,我们来创建属于自己的第一个方法。

需求:

创建一个方法,显示输出“I Love Java”字符串。

思路:

  1. 方法的访问修饰符为“public static ”。为什么是“public static”原因下面说。
  2. 方法的返回值是viod,因为没有要求返回什么值。
  3. 方法名就叫“say”,说话的意思。
  4. 方法参数列表里面无参数,因为不需要外界传递内容。
  5. 方法体是一条输出语句。
  6. 在main方法中调用say方法。

实现:

结果:

结论:

为什么方法的访问修饰符是“public static”?

马上后面几章讲到类的时候也会讲到,调用类里面的方法,是需要对象才能够调用的,想直接调用的话也行,除非你的方法是静态的,也就是static修饰的,static修饰还不行,还必须是公开的方法,也就是public修饰的。将他们两人综合起来就构成了一个公开的静态方法,直接使用类名就可以调用。

为什么要这样做呢?

我们回过头来看Main这个类还有它里面的main方法:

各位,我们最开始讲过,main方法是程序的主入口。是给Java 虚拟机 调用的,你认为Java虚拟机怎么调用最方便?当然是直接调用主入口方法最方便,再者,你让它去创建一个Main对象,然后再调用main方法,有必要吗?没必要,Main这个类只有一个功能,提供程序入口。它只服务于Java虚拟机,不服务于我们,所以没必要再去创建这么一个Main对象。既然要让Java虚拟机直接调用,那必然是“public static”访问修饰符修饰的。

为什么say方法也要用“public static”访问修饰符修饰?

前面说过,public static修饰的方法是可以直接用类名调用的。

main方法是“public static”修饰的,也就是可以直接Main.main()。

那么,Java虚拟机调用mian方法,然后main方法调用Main类里面其他的方法,只有两种选择:一是创建Main对象,然后调用Main对象里面的其他方法;二是通过类名直接调用。上面我们选择了第二种,通过类名直接调用,main方法和say方法都在Main类里面,所以不用写类名Main,直接调用方法即可。

想要通过类名调用方法访问修饰符必须得是“public static”,当然了,除了“public static”还有其他三种选择,这里就不一一讨论了,后面讲到访问修饰符的时候,再进行详细讨论。这里只需要记住main方法调用同类里面的方法时,方法访问修饰符必须是“public static”。

3.方法的参数列表

我们将参数列表展开就是:

形参 形式参数 的所写。

什么是形式参数?

形式参数:不是实际的变量。

与形式参数对应的有一个叫实际参数,他是实际的变量。

接下来,我们通过一个示例来了解它们的区别。

需求:

定一个方法,该方法的功能是接收一个整数,然后显示输出该整数。

思路:

  1. 方法没有要求返回值,所以是一个void的方法。
  2. 接收一个整数,所以定一个数据类型为int的形参。
  3. 方法体里显示输出该数字。

实现:

结果:

从运行结果来看,完全正确。

看一下程序中谁是形参,谁是实参:

number是形参,1是实际传进来的参数,所以1是实参。

4.方法的返回值

需求:

定一个功能,计算两整数之和,并返回结果。

思路:

  1. 方法的返回值是整数类型,因为是计算两整数之和。
  2. 方法的参数有两个,都是整数类型。
  3. 方法需要使用return返回两个数之和。

实现:

结果:

从运行结果来看,完全正确。

5.方法的 重载

需求:

定一个功能,计算两小数之和,并返回结果。

思路:

  1. 方法的返回值是 double 类型,因为是计算两小数之和。
  2. 方法的参数有两个,都是double类型。
  3. 方法需要使用return返回两个数之和。

实现:

结果:

从运行结果来看,完全正确。

此时的sum方法功能是计算两小数之和,假如现在我既要计算两整数之和,同时也要计算小数集合呢。

在Java中,允许有多个方法名相同的方法,但是参数列表必须独一无二,这个特性叫方法的重载。

需求:

定义一个功能,计算两小数之和,并返回结果。

再定义一个功能,计算两整数之和,并返回结果。

思路:

定义一个sum方法,参数类型为int,方法体为计算两数之和,并返回结果。

再定义一个sum方法,参数类型为double,方法体为计算两数之和,并返回结果。

实现:

结果:

从运行结果来看,完全正确。

下面我们来看一些反例。

访问修饰符不同

public、private等其他访问修饰符不构成重载方法。

返回值不同

不同的返回值不构成重载方法。

方法名不一致

sum1方法和sum2方法不构成重载方法。

结论:

  1. 方法的重载跟方法名和参数列表有关,跟方法访问修饰符、方法返回值无关。
  2. 重载的方法,方法名必须一致。
  3. 重载的方法,参数列表必须独一无二。

至此,Java中方法相关内容讲解先告一段落,更多内容请持续关注。

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

下一章

“全栈2019”Java第三十四章:可变参数列表

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

版权声明

原创不易,未经允许不得转载!

文章来源:智云一二三科技

文章标题:“全栈2019”Java第三十三章:方法

文章地址:https://www.zhihuclub.com/199999.shtml

关于作者: 智云科技

热门文章

网站地图