【相关链接】
上一篇:小白学Java 第14课:do while 循环
下一篇:小白学Java 第16课:字符串
总纲:返回列表
【1】方法是什么?
什么是方法?简单的说就是通过一段代码,获取一个结果,可以认为就是程序这段代码里做了一件事或多件事情,方法也通常被称之为函数。
【2】main 方法
在前面的课时中,我们已经知道了,所有执行程序都是从一个 main 方法开始执行的,那么main方法他做的事情就是要执行所有程序。
public static void main(String[] args) {
}
比如我们执行如下代码:
public static void main(String[] args) {
int a = 2;
int b = 3;
int c = a + b;
System.out.println("a + b = " + c);
}
最后的输出结果为:
这里把上面四行代码运行完全,就是main方法所做的事情,这里main方法计算了a+b的结果并输出。
假设我们现在把main方法的名称改为main2,如图所示:
我们再点击程序执行按钮
可以看到提示说:我们的类中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)
从这里我们于是就更加清楚到,main方法由于十分特殊,且他是程序的唯一入口,所以为了标准, public static void main(String[] args) 是类中代码直接执行的唯一固定写法。
【3】方法的定义
那么,如果去定义一个方法呢?一个方法有哪些要素呢?我们以main方法举例:
我们从左往右开始依次说明下:
(1)首先,第一个关键字 public,这个是方法的公私属性,他一共有3种可以选择:public (公有,其他类可以调用),private(私有,只能自己类用),protected (保护,继承自己的类可以用),这个关键字目前不做深究,我们现在先默认用 public。
(2)然后接着是 static,被这个关键字修饰的方法叫做静态方法,可以直接调用,这里也不做深究,我们在后面同样也先默认使用。
(3)第3个关键字是 void ,这个是返回的参数类型,被 void 修饰的方法表示执行后不用返回,如果要想方法返回一个值,则需要显示返回的类型,比如我定义一个方法需要返回一个整数,那么我们可以将这里的 void 用 int 代替。
(4)main,这个是方法的名称,我们称之为方法名。
(5)main 后面的小括号被称之为参数体,如果有参数则标明参数,如果没有参数,小括号里面不写即可。
(6)String[] 参数类型,表示这是一个String类的数组类型(数组后面介绍,这里不深究)
(7)args 形式参数,这个可以随便取名,比如我将mian方法定义为 public static void main(String[] xxx) 也是可以的,只是在main方法里,大家都习惯了args系统自带的写法。
(8)方法大括号中的所有代码被称之为方法体。
【4】实战举例
上面说了这些定义,下面我们来实际操作下,如何我们自己来定义一个方法。
比如,我们将main方法种的加法逻辑进行剥离,抽成一个加法方法,具体代码为:
/**
* 加法运算
* @param a 数1
* @param b 数2
* @return 两个数之和
*/
public static int add(int a, int b) {
int c = a + b;
return c;
}
(1)首先看注释,注释@param表示每个对应参数的解释,@return 表示方法执行返回的解释。
(2)由于我们是做加法,所以方法名我们取名为add;
(3)由于是两个数的整数加法,所以我们定义了两个参数int类型的a和b,且不管哪两个整数相加,我们都可以用a和b表示;
(4)两个整数相加结果必然是一个整数,所以我们相加的结果也应该是int类型,所以我们返回值应该是int。
(5)整个方法体中,就两条语句,第一句(int c = a + b;)的作用是把两个数相加的结果赋值给了整数c,第2句(return c;)的作用是把c返回出来,所以在有返回值的时候,必须配合 return 关键字将结果返回。当然,这里可以直接将两句缩成为1句(return a + b;)。
【5】方法调用
如下图所示,整个方法的定义我们已经写好了,那么如果将mian方法中的代码改为方法调用的写法呢?
于是我们可以改动代码如下:这里我们把mian方法种的a和b传进了方法中,用了一个c去接收了方法的结果,这个c就是加法结果。
我们执行方法:同样可以看到一样的结果
在mian方法和add方法中,都存在a,b,c三个参数,可能对于第一次学习的同学来说有点混乱,到底哪个a是哪个方法的,就这里来看,自己方法的变量只在自己方法有效,这里叫做方法变量,他的作用范围不能超出自己的方法。
如果实在不习惯,你可以将下面的abc改为其他的也是可以的,比如我改为mnk(你也可以改为其他的),结果都是一样的,并不影响。
这是同一个文件类中,方法可以直接写方法名字进行调用,至于如何跨类调用,后面我们学习了类的介绍再进行说明。
【6】小提示
在定义方法的思路上,我们首先要明确:自己想要通过什么,而获得什么(如果不需要获得就写为void,比如我这个方法只做打印而不返回,就可以定义为void,如下),然后取一个与逻辑代码对应的方法名,最后根据方法的其他属性加上其他关键值修饰;
【相关链接】
上一篇:小白学Java 第14课:do while 循环
下一篇:小白学Java 第16课:字符串
总纲:返回列表