方法有什么作用?
先来看一个需求
计算10+15的值
计算20+30的值
以前的也许会这样写代码
int a = 10;
int b = 15;
int sum1 = a + b;
System.out.println(sum1);
int d = 20;
int e = 30;
int sum2 = d + e;
System.out.println(sum2);
比如你们公司需要招聘会计,会计A只会计算10+15的和,会计B只会计算20+30的和,如果有其他数据需要计算的话还得再招聘会计,显然这是不行的。
上面两部分代码的内容都是计算两组数字的和,功能是相同的,只不过数据不同。倘若再计算其他两组数据的和,则需要再重复编写一下上面的代码,这样会导致代码的冗余,如果相同的功能,最好是能够通过直接传递不同的数值来完成运算,在实际应用当中,应该减少冗余,提高代码的复用性。
main方法
在之前的学习当中,已经接触过一个方法了,那就是main方法,main方法是所有程序的入口,这是sun公司规定的,程序都是从main方法开始执行的,如果将一个程序比喻成一座大楼,那么main方法就相当于是这个楼最外面的大门。
用方法来写这段代码
/*
方法初体验
方法实际上就是一段代码片段
*/
public class Test{
public static void main(String[] args){
//计算10加15的和
//调用sumInt方法
sumInt(10,15);//(10 , 15)叫做实际参数列表,简称:实参
//计算20加30的和
//调用sumInt方法
sumInt(20,30);
}
//定义方法,完成两个整数的求和。
//注意:目前所有的方法请定义成public static
//该方法的作用就是计算两个int类型求和
//以后如果需要计算两个int类型的求和,直接调用该方法就可以了
public static void sumInt(int a,int b){//(int a , int b) 是形式参数列表,简称:形参
int c = a + b;
System.out.println(a + "+" + b +"=" +c);
}
}
方法的优点就是可以提高代码的复用性。以后要有编写方法的意识,不要把所有代码都堆积在main方法中。什么时候需要定义方法?当希望提高某段代码复用性的时候可以去定义一个方法。
注意:
1.方法体中不能定义方法,只能在类体中定义方法。
2.上面代码中的(int a , int b)叫做形式参数列表,简称形参,调用sumInt方法时传入的(10 , 15)叫做实际参数列表,简称:实参。java语言中有规定,实参和形参在数据类型上要对应相同,并且在数量上要相同。
3.形参就是局部变量,变量名的命名可以随意命名,最好是见名知意
局部变量和成员变量
变量根据声明的位置分为:
局部变量:在方法体当中声明的变量
成员变量:在方法体之外声明的变量
如何定义方法
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
//如果方法没有返回值的话就不需要return了。
return 返回值;
}
修饰符:暂时先写 public static。
返回值类型:可以是java语言中的任何一种数据类型(基本数据类型和引用数据类型)。如果方法执行结束后,没有任何返回值,返回值类型填写void,即表示没有返回值。
方法名:自己定义,只要符合命名规则即可,使用驼峰方式命名,即第一个单词首字母小写,后面单词的首字母大写,例如sumInt。(驼峰命名法)
参数:
没有参数:如果没有参数,参数类型和参数名可以不写,()里面空着就行
有参数:可以有一个,或多个参数,多个参数用”,”隔开
参数类型:就是参数的数据类型,基本数据类型和引用数据类型都可以
参数名:就是变量名,符合命名规则即可
方法体语句:就是完成功能的代码。
return:如果方法的返回值类型不是void,那么在方法体中必须使用return 语句来返回数据。return语句一旦执行,则方法结束,因此在方法中return后面的代码是不会执行的。
返回值:方法执行的结果,将结果返回给调用者。
main方法解读
public static void main(String[] args)
public static是修饰符
void表示main方法结束之后不返回任何值
main是方法的名字,是sun公司规定好的
(String[] args)是形式参数列表,该参数表示是一个String类型的数组,形参的名字是随意的,下面这种写法也是可以的,只不过通常都会将参数名字写成args。
public static void main(String[] zcccccc)
例1:如下代码是没有返回值的方式
public class MethodTest{
//程序的入口
public static void main(String[] args){
sumInt(10,15);
sumInt(20,30);
}
//定义方法,完成两个整数的求和。
//注意:目前所有的方法请定义成public static
public static void sumInt(int a,int b){
int c = a + b;
System.out.println(a + "+" + b +"=" +c);
}
}
例2:有返回值的方式
public class MethodTest{
public static void main(String[] args){
//因为方法的返回值是int类型,所以定义int类型的变量来接收返回值
int result1 = sumInt(10,15);
int result2 = sumInt(20,30);
System.out.println(result1);
System.out.println(result2);
//下面这样写也可以
//因为sumInt方法的返回值是int类型,所以其计算的结果其实就是一个int类型的数据
System.out.println(sumInt(10,15));
System.out.println(sumInt(20,30));
}
//返回值类型为int
public static int sumInt(int a,int b){
int c = a + b;
return c;
}
}
定义方法时只有两种情况,一种是有返回值的,一种是没有返回值的,这个可以根据具体的需求去定义使用哪种方式,如果需要方法计算出的结果再进行下一步运算的话,那就定义有返回值的。Java语言是人类编写出来的,所以很多概念也是来源于生活。
case 1.你的老婆给你一张银行卡,让你取10元钱,随便花,当做你的零用钱。这种情况就不需要返回值,你取了钱之后怎么花随便,老婆也不会管。
case 2.你的老婆给你一张银行卡,让你取1000元钱,然后再把这些钱给她,她要去买衣服。这种情况需要返回值,你取了钱之后,一分也不能动,需要全部上缴老婆。
上面的情况里面,如果你不知道银行卡密码的话,还需要老婆告诉你,这就相当于老婆把密码当做一个参数传给你,你得到这个密码后才能去取钱。
网友评论