目录
一般的方法
方法:是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集。
方法的命名:小驼峰命名法。一个单词时首字母小写,多个单词时第一个单词首字母小写其他单词首字母大写。例如:一个单词时:first,多个单词时firstName.
格式:public static void 方法名(){ 方法体 }
方法的调用:方法名();
注意:当我们在调用方法时,会直接执行方法体的内容。
下面我们来举一个简单的例子:
public class Method {
//下面我们来定义一个method方法
public static void method()
{
//我们在方法体里面打印一个输出语句
System.out.println("这是method方法");
}
public static void main(String [] args) {
//我们在main方法中调用method方法,会直接执行method方法体的内容
method();
/*这里需要注意
*如果我们不是main方法中调用这个方法而是直接运行程序
*控制台会什么都打印不出来
*因为main方法是程序的入口,如果我们连入口都没进去
*当然不会有结果
* */
}
}
这就是一个非常简单的方法举例以及方法的调用。
输出结果也很简单:
对于方法,有很多种分类,我们先从带参方法和无参方法开始讲起吧:
无参方法与带参方法:
带参方法:在定义方法时会带有一个或多个参数
无参方法:看它的名字就知道,是没有参数的方法。
那么什么是参数呢?
1.public static void method1(){ 方法体 }
2.public static void method2(int number){ 方法体 }
上面的第一个就是一个无参方法,第二个就是一个带参方法这里的参数我们举的一个整形的例子,当然其他的数据类型也是可以的。
对于无参方法的调用:就是 method1();
对于带参方法的调用:因为我们在定义时加了int类型的参数,所以我们在调用的时候,也要传一个整型参数进去,也就是 method(5);
下面我们来看代码来方便理解:
public class Method {
//我们定义一个无参方法
public static void method1() {
//无参方法的方法体就是打印下面的语句
System.out.println("这是一个无参方法");
}
//我们定义一个带参的方法
public static void method2(int number)//这里我们的参数定义了一个整型
{
System.out.println("这是一个带整型的参数的方法,我们定义的整型值为"+number);
//这里的number是我们在调用方法时传进去的
int a=number;
//我们把传进去的number的值赋值给a,再把a的值打印一下
System.out.println("a的值为:"+a);
}
public static void main(String [] args) {
//下面我们调用无参方法是,不需要传参数
method1();
//下面是有参构造方法,因为定义时参数为整整型的,所以需要我们传入一个整型的参数
method2(2);//这里我们传进的整型参数是2。
}
}
下面是他们的输出结果:
带参数的方法的方法的定义和调用:
单个参数:
格式:public static void 方法名(数据类型 变量名){ 方法体 }、
多个参数:
格式:public static void 方法名(数据类型1 变量名1,数据类型2 变量名2 ......){ 方法体 }
方法定义时,参数中的数据类型和变量名都不可以缺少。在参数与参数之间要用逗号分隔开。
下面我们来看代码吧;
public class Method {
//定义一个单个参数的方法
public static void method1 (int number) {
//在方法体中打印出下面的句子,在调用方法时会执行方法体的内容
System.out.println("这是一个单个参数的方法,传进去的参数值为"+number);
}
public static void method2(String name,int number) {
System.out.println("这是一个多个参数的方法我们定义的参数名为"+name);
System.out.println("参数的值为"+number);
}
public static void main(String [] args) {
//调用第一个方法,需要传一个整型的参数。
method1(5);
//调用第二个方法,需要传一个字符串参数和一个整型。
method2("小明",5);
//除了直接传进去一个参数之外,我们还可以将定义好的变量传进去。
int a=4;
method1(a);
}
}
下面是程序的运行结果:
形参,实参
形参:就是方法定义中的参数。
public static void method(int number)
用红色标注的部分就是形参
形参是由“数据类型+变量名”组成的。
实参:就是方法调用中的参数。
在方法的调用时:
method(10);
或
int a = 10;
method(a)
用红色部分标注的就是实参
实参就是变量或常量
带返回值方法的定义和调用:
前面我们学习的都是没有返回值的方法的调用,现在我们来看带返回值的方法的调用:
定义:格式:public static 数据类型 方法名(参数){ 方法体 return 数据; }
之前我们在数据类型这一块用的都是void 那是没有返回值的定义格式,所以可以省略return。
带返回值的方法的调用:
可以直接使用method1(1,3);这样的形式来调用这个方法,但是这样没有什么意义,因为这样与无参构造基本类似了,所以没什么意义,所以我们采用的方法调用的格式为:
数据类型 变量名 = 方法名 (参数);
我们通过代码来进一步了解:
public static int method1(int a,int b) {
System.out.println("这是一个可以返回整型的方法");
return 100;
/*return后面的返回值要与方法定义时的数据类型相匹配
因为在method1前面我们限制的方法返回值是int,
所以返回的值也需要是一个整型的*/
}
public static void main(String [] args) {
method1(4,3);
//上面这种方法的调用格式可以使用但没有什么意义,体现不出它是带返回值的方法
int a = method1(1,3);
//因为method1的返回值是100,所以也就直接将100赋值给a了
System.out.println(a);
}
}
下面是代码的输出结果:
上面这个代码只是为了方便大家的理解,但是实用性比较差,下面我们再来通过一个简单地实用性强的例子来学习带返回值的方法:
public class Method {
//下面我们定义了一个带两个参数的,返回值为布尔类型的方法
public static boolean method1(int a,int b) {
if(a+b==5) {
/*在main方法中调用这个方法时,
* 如果传入的两个参数相加等于5,就返回true,
* 否则返回false.
*/return true;
}
else {
return false;
}
}
public static void main(String [] args) {
/*在main方法中调用这个带参带返回值的方法
* 因为是返回的一个布尔类型的值
* 所以需要我们用一个布尔类型的变量去接收*/
boolean judge = method1(4,1);
/*在这里我们给a,b赋值,
* 如果这两个值相加等于5,那么布尔类型的变量接收到的为true,
* 如果这两个值相加不为5,那么布尔类型的变量接收到的为false*/
//下面我们来输出一下judge看一下是true还是false
System.out.println(judge);
}
}
因为我们给的实参是4和1,这两个值相加为5,所以控制台会输出true。
方法的重载:
在我们打代码的时候,会用到很多的方法,每一个都要给它取一个名字,这样就会很麻烦,我们可以使用类似于重名的原理来解决这个问题,也就是两个方法可以取同一个名字,当然,我们会设置不同参数来区分它们。
在同一个类中,方法的名字相同,但是方法的参数不同,即为方法重载。
这里的参数不同分为两种:
一种是参数的返回值类型不同;
一种是参数的个数不同;
下面我们来看代码方便理解:
public class Method {
//我们定义一个method方法,它的参数设置成int a.
public static void method(int a) {
System.out.println("这是一个method方法,它的参数为int a");
}
//我们定义一个相同名字的方法,也是method方法,但是它的参数为String name.
public static void method(String name) {
System.out.println("这也是一个method方法,它的参数为String name");
}
//同样这个方法的名字也是method,虽然它也有int a,String name,但是他有两个参数
public static void method(int a,String name) {
System.out.println("这还是一个method方法,它的参数int a,String name");
}
public static void main(String [] args) {
method(5);
/*当我们调用这个方法时,因为传入的参数只有一个整型,
* 所以系统能够分辨出我们在调用最上面的那个方法*/
method("小明");
//同样的我们传进去一个字符串,系统知道我们在调用第二个方法
method(4,"小明");
//也是一样的,当我们在输入这两个参数的时候,系统知道我们在调用第三个方法
}
}
下面我们来看控制台的输出:
很明显,即使方法的名字一样, 系统也会根据我们传入的参数来确定需要调用哪一个方法。
这就是方法的重载。
以上就是本篇文章的所有关于方法的基础知识了。