方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集合
注意事项:
1.方法定义的先后顺序无所谓。
2.方法的定义不能产生嵌套包含的关系。(彼此是相互独立的模块)
3.方法定义好之后,不会执行的,如果想要执行,一定要进行方法的【调用】。
//方法调用的格式:
方法名称();
简单演示方法的调用:
package com.fan.pojo;
public class DemoVariable {
public static void main(String[] args) {
//方法调用
canRun();//要让我们定义的方法执行,就要调用(使用)它;
}
//定义一个简单的方法
public static void canRun(){
System.out.println("这个汽车可以跑");
}
}
系统讲解方法:
方法的定义:方法是一段可以被重复调用的代码块。是若干语句的功能集合。
优点:好比一个可以多次使用的工具,如剪刀(有剪东西的功能),起子,洗衣机(有洗衣服的功能,可以重复使用)等。
方法好比一个工厂:
蒙牛工厂:可以生产奶制品的功能。
原料:奶牛,饲料,水等
产出物:奶制品
钢铁工厂:有生产钢铁建材的功能;
参数(原料):就是进入方法的数据
返回值(产出物):就是从方法中做出来的数据
方法定义的完整格式:(格式很重要,很重要,很重要)
修饰符 返回值类型 方法名称(参数类型 参数名称,...){
方法体;
return 返回值;
}
修饰符:现阶段的固定写法,public static
返回值类型:也就是方法最终产生的数据结果是什么类型。
方法名称:方法的名字,规则和变量一样,小驼峰
参数类型:进入方法的数据是什么类型
参数名称:进入方法的数据对应的变量名称
备注:
参数如果有多个,使用逗号进行分隔
方法体:方法需要做的事情,若干行代码
return:两个作用,第一停止当前方法,第二将后面的返回值还给调用处。
return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应(返回值数值类型和方法名称前的“返回值类型” 保持同一类型)。
方法的三种调用格式:
1.单独调用:方法名称(参数);
2.打印调用:System.out.println(方法名称(参数));
3.赋值调用:数据类型 变量名称 = 方法名称(参数);
注意:当返回值为void时,这种方法只能够单独调用,不能进行打印调用或者赋值调用。
总结:
1.单独调用,方法产生了怎样的结果我们都无法使用。
2.打印调用:将方法调用写在输出语句中,方法先执行完,然后return后的结果将被显示。
3.赋值调用:将方法调用后的结果赋值给左边的一个变量。然后变量可以进行后续操作。
代码演示方法调用:
package com.fan.pojo;
public class DemoVariable {
public static void main(String[] args) {
//在主方法内调用自定义的方法,方法才能被执行。
//1.单独调用,方法产生了怎样的结果我们都无法使用。
sum(1,2);
System.out.println("================");
//2.打印调用:将方法调用写在输出语句中,方法先执行完,然后return后的结果将被显示。
System.out.println(sum(2,2));//输出3
System.out.println("==================");
//3.赋值调用:将方法调用后的结果赋值给左边的一个变量。然后变量可以进行后续操作。
int num = sum(3,4);
num += 100;
System.out.println("变量的值:" + num);//107
}
//自定义的方法,和main方法并列平级
public static int sum(int a,int b){
System.out.println("方法执行了!");
int result = a + b;
return result;//将方法最终结果返回给调用处
}
}
方法调用流程
调用过程请按照上图【1】-【2】-【3】-【4】进行,最后调用完后,带着返回值返回到方法的调用处,结果将sum(参数)这一整块覆盖/替换掉。
方法分类
方法根据有无参数分为:有参方法和无参方法
有参方法:小括号当中有内容,当一个方法需要一些外部数据条件,才能完成任务的时候,此方法就是有参方法。
例如:两个数字相加,必须知道这两个数字各自是多少,才能相加。
无参方法:小括号当中什么也不写,一个方法不需要外部的任何数据条件,自己能独立完成任务,就是无参方法。
例如:定义一个方法,打印戈丁10次,HelloKitty。
代码演示有参无参方法:
package com.fan.pojo;
public class DemoVariable {
public static void main(String[] args) {
//在主方法中进行方法调用
mehtod1(10,20);
System.out.println("================");
method2();
}
//自定义的方法,和main方法并列,方法之间禁止嵌套定义
//两个数字相加,必须知道这两个数字各自是多少,才能相加。否则无法计算
public static void mehtod1(int a,int b){
int result = a + b;
System.out.println("结果是:" + result);
}
//例如:打印固定10次的字符串
public static void method2(){
for (int i = 0; i < 10; i++) {
System.out.println("HelloKitty:"+ i);
}
}
}
方法根据有无返回值分为:有返回值方法和无返回值方法
方法有返回值:方法执行完,需要给调用者一个结果:生活中的场景,我让小张帮我买一盒烟,我给了他50,那你说小张要不要把烟和找零 返回给你这个 调用 他的人呢?那是必须的。不然就是不道德的。这这里烟和找零就是 买烟 (方法) 的返回值。
方法无返回值:方法执行完,无需给调用者返回任何结果(void),即空的结果。生活中也存在着大量的例子。你发工资了,给了你弟弟/妹妹 100块钱,你给他们说自己买点零食,随便买,都给你了。
这时候你需要知道100块钱怎么花的吗,有没有找零等。是不需要给你这个调用者任何 返回 信息的。这就是无返回值方法
代码演示有返回值和无返回值方法:
package com.fan.pojo;
public class DemoVariable {
public static void main(String[] args) {
//我是main方法,我来调用你
//我调用你,你来帮我计算一下,算完之后,把结果告诉num 变量
int num = getSum(10,20);
System.out.println("有参调用后的结果是:"+ num);
System.out.println("=======================");
printSum(20,30);
}
//有返回值方法演示:我是一个方法,我负责两个数字相加
//我有返回值int,谁调用(使唤/操作)我,我就把计算结果告诉谁
public static int getSum(int a,int b){
int sum = a + b ;
return sum;
}
//无返回值方法演示:我是一个方法,我负责两个数字相加
//我没有返回值,不会吧结果告诉任何人,而是自己进行打印输出
public static void printSum(int a,int b){
int sum = a + b;
System.out.println("无返回值方法:自己打印的结果是:" + sum);
}
}
方法使用的注意事项:
1.方法定义在类中,但是不能在方法当中再定义方法。不能嵌套。因为所有的方法都是独立的平等的 功能模块。
2.方法定义的前后顺序无所谓,真正影响方法执行顺序的是 调用的先后次序。
3.方法定义之后不能执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。
4.如果方法有返回值,那么必须写上“return 返回值;”,不能没有。
5.return后面的返回值数据,必须和方法的返回值类型,对应起来。
6.对于一个是void没有返回值的方法,不能写return后面的返回值数据,只能写return +分号。
7.对于void方法当中最后一行的return可以省略不写(一般都省略)。
8.一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。
演示: