深入学习方法
- 一、复习方法基础知识
- 二、方法定义完整格式
- 三、关于参数
- 四、关于返回值
一、复习方法基础知识
之前,我们在 原重学Java(004)—— Java基础知识(赋值、比较、逻辑、三元运算符、方法、判断语句)这篇笔记当中,简单学习了方法的基础知识。这里我们做一个简单的复习。
方法定义格式:
public static void 方法名称() {
方法体
}调用格式:
方法名称();注意事项:
1.方法定义的先后顺序无所谓。
2.方法定义必须是挨着的,不能在一个方法的内部定义另外一个方法。
3.方法定义之后自己不会执行,如果希望执行,一定要进行方法的调用。
二、方法定义完整格式
但是在实际的学习当中,光有之前的知识是不够的,我们需要进一步的学习,接下来我们重新认识一下Java中的方法。
方法可以说是若干语句的功能集合,方法好比是一个工厂。比如一个钢铁工厂,要把铁矿石加工成钢铁,这里的铁矿石是原料,产出物是钢铁。那么在方法当中,参数就相当于是原料,返回值就相当于是产出物。我们要做的就是让参数进入方法,最终以返回值的形式从方法中出来。
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,...){
方法体
return 返回值;
}这里我们对其中的名词进行解释:
- 修饰符:现阶段固定:public static
- 返回值类型:也就是方法最终产生的数据结果是什么类型
- 方法名称:方法的名字,命名规则和变量一样,小驼峰式
- 参数类型:进入方法的数据是什么类型
- 参数名称:进入方法的数据对应的变量名称
PS:参数如果有多个使用逗号进行分隔 - 方法体:方法需要做的事情,若干行代码
- return:两个作用,第一停止当前的方法,第二将后面的返回值还给调用处
- 返回值:也就是方法执行后最终产生的数据结果
注意:return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应。
在我们定义好方法之后,我们要想执行该方法,就必须要在main方法当中进行方法的调用,方法的调用方法有如下三种方法:
- 单独调用:方法名称(参数);
- 打印调用:System.out.println(方法名称(参数));
- 赋值调用:数据类型 变量名称 = 方法名称(参数);
例如我们定义一个方法:实现两个int数字相加。首先我们要明确该方法的三要素:
1.单独调用:方法名称(参数);
2.打印调用:System.out.println(方法名称(参数));
3.赋值调用:数据类型 变量名称 = 方法名称(参数);
注意:此前学习的方法,返回值类型固定写为void,这种方法只能够单独调用,不能进行打印调用或者赋值调用。
代码如下:
public class Demo02MethodDefine {
public static void main(String[] args) {
//单独调用
sum(10,20);
System.out.println("---------------------------");
//打印调用
System.out.println(sum(10,20));//30
System.out.println("---------------------------");
//赋值调用
int number = sum(10,20);
System.out.println("变量的值为:" + number);
}
public static int sum(int a,int b) {
System.out.println("方法执行了");
int result = a + b;
return result;
}
}三、关于参数
在方法中,有时有参数,有时无参数,那么有参数和无参数有什么区别呢?下面我们来简单得探讨一下。
有参数:小括号当中有内容。当一个方法需要一些数据条件,才能完成任务时候,就是有参数。
例如两个数字相加,必须知道两个数字各自多少,才能相加。
无参数:小括号当中留空。当一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数。
例如定义一个方法,打印固定10次HelloWorld。
具体代码如下:
public class Demo03MethodParam {
public static void main(String[] args) {
method1(10,20);
System.out.println("--------------------");
method2();
}
//两个数字相乘,做乘法,必须知道两个数字各自是多少,否则无法进行计算
//有参数
public static void method1(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("Hello,World!" + i);
}
}
}四、关于返回值
在Java的方法中,如果有返回值,则可以把方法中产出的结果返回(回馈)给它的调用着,此时调用者也可以对该返回结果进行操作;如果没有返回值,则只能由方法本身对结果进行操作,而它的调用者不能对它进行任何操作。
此外,对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用;但是对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。
代码说明:
定义一个方法,用来“求出”两个数字之和。(你帮我算,算完之后把结果告诉我)
变形:定义一个方法,用力“打印”两个数字之和。(你来计算,算完之后你自己负责显示结果,不用告诉我)
public class Demo04MethodReturn {
public static void main(String[] args) {
//我是main方法,我来调用你。
//我调用你,你来帮我计算一下,算完了之后,把结果告诉我的num变量。
int num = getSum(10,20);
System.out.println("返回值是:" + num);
System.out.println("---------------------");
printSum(100,200);
System.out.println("---------------------");
//对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用
System.out.println(getSum(10,20));//正确写法
getSum(10,20);//正确写法,但返回值没有用到
System.out.println("---------------------");
//对于void没有返回值的方法,只能单独调用,不能打印或赋值调用
// System.out.println(printSum(10,20)); //会报错
//System.out.println(void);
//int num2 = printSum(10,20);//错误写法
}
//我是一个方法,我负责两个数字相加。
//我有返回值int,谁调用我,我就把计算结果告诉谁
public static int getSum(int a, int b) {
int result = a + b;
return result;
}
//我是一个方法,我负责两个数字相加。
//我没有返回值,不会把结果告诉任何人,而是我自己进行打印输出。
public static void printSum(int a, int b) {
int result = a + b;
System.out.println("结果是" + result);
}
}
















