难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
Java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
1.方法
什么是方法?
方法就是做某些事情的方式。
方法有别名吗?
有,“函数”是方法的别名。比如,你定义了一个方法,也可以叫“你定义了一个函数”。
方法的定义格式:
演示:
main方法也是我们接触到的第一个Java方法。
- “public static”是访问修饰符。
- “void”是返回值类型。void表示无返回值。
- “main”是方法名,小括号里面的是参数列表,参数列表是以参数的数据类型和参数名组成,多个参数以逗号隔开。
- 大括号{}里面的是方法体。
- 当方法没有返回值时,return可以省略不写,也可以写成“return;”
2.调用方法
下面,我们来创建属于自己的第一个方法。
需求:
创建一个方法,显示输出“I Love Java”字符串。
思路:
- 方法的访问修饰符为“public static ”。为什么是“public static”原因下面说。
- 方法的返回值是viod,因为没有要求返回什么值。
- 方法名就叫“say”,说话的意思。
- 方法参数列表里面无参数,因为不需要外界传递内容。
- 方法体是一条输出语句。
- 在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.方法的参数列表
我们将参数列表展开就是:
形参 是 形式参数 的所写。
什么是形式参数?
形式参数:不是实际的变量。
与形式参数对应的有一个叫实际参数,他是实际的变量。
接下来,我们通过一个示例来了解它们的区别。
需求:
定一个方法,该方法的功能是接收一个整数,然后显示输出该整数。
思路:
- 方法没有要求返回值,所以是一个void的方法。
- 接收一个整数,所以定一个数据类型为int的形参。
- 方法体里显示输出该数字。
实现:
结果:
从运行结果来看,完全正确。
看一下程序中谁是形参,谁是实参:
number是形参,1是实际传进来的参数,所以1是实参。
4.方法的返回值
需求:
定一个功能,计算两整数之和,并返回结果。
思路:
- 方法的返回值是整数类型,因为是计算两整数之和。
- 方法的参数有两个,都是整数类型。
- 方法需要使用return返回两个数之和。
实现:
结果:
从运行结果来看,完全正确。
5.方法的 重载
需求:
定一个功能,计算两小数之和,并返回结果。
思路:
- 方法的返回值是 double 类型,因为是计算两小数之和。
- 方法的参数有两个,都是double类型。
- 方法需要使用return返回两个数之和。
实现:
结果:
从运行结果来看,完全正确。
此时的sum方法功能是计算两小数之和,假如现在我既要计算两整数之和,同时也要计算小数集合呢。
在Java中,允许有多个方法名相同的方法,但是参数列表必须独一无二,这个特性叫方法的重载。
需求:
定义一个功能,计算两小数之和,并返回结果。
再定义一个功能,计算两整数之和,并返回结果。
思路:
定义一个sum方法,参数类型为int,方法体为计算两数之和,并返回结果。
再定义一个sum方法,参数类型为double,方法体为计算两数之和,并返回结果。
实现:
结果:
从运行结果来看,完全正确。
下面我们来看一些反例。
访问修饰符不同
public、private等其他访问修饰符不构成重载方法。
返回值不同
不同的返回值不构成重载方法。
方法名不一致
sum1方法和sum2方法不构成重载方法。
结论:
- 方法的重载跟方法名和参数列表有关,跟方法访问修饰符、方法返回值无关。
- 重载的方法,方法名必须一致。
- 重载的方法,参数列表必须独一无二。
至此,Java中方法相关内容讲解先告一段落,更多内容请持续关注。
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第三十四章:可变参数列表
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号Gorhaf,私信“Java学习小组”。
- 方式二:关注公众号Gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!