# 方法概念,如何定义以及简单调用
我们知道,一个Java程序的起始点,应该是main主方法,而以后的程序不可能只在主方法里书写,
所以这就需要我们知道方法的概念,如何定义以及怎么用它
方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
定义方法如下面所示:
修饰符 返回值类型 方法名 (参数列表){
代码...
return ;
}
2
3
4
例如:
public void cat() {
String name1="Chocolate";
String name2="vanilla";
System.out.println("这是定义了两只猫猫的方法");
}
2
3
4
5
- pubvlic :这个叫修饰符,public称为公共的,也就是说这个方法任何人都能用,比如大家都可以使用中性笔写字
- void:这个叫返回值类型,这里是空类型,所以不返回任何类型的值
- cat:方法名,这里我们给这个方法起了个cat猫的名字,以后我们想调用此方法时直接输入代码cat(); ,即可输出本方法内的所有代码
- 参数列表: 目前无参数
- return:方法结束。因为返回值类型是void,方法大括号内的return可以不写。
以上方法为简单调用,也就是没有返回值的调用,如果不在方法内输出的话直接调用将不会在屏幕打印任何东西
# 三种复杂的方法调用
除了上一篇那个简单调用(没有返回值)以外,还有另外两种方法调用
打印调用:
适合需要在屏幕上输出该调用方法返回值的情况
例如下面一段两个数相加方法的代码:
public static int sum(int a,int b){
int result = a+b; //计算两个数相加的方法
return result;
}
2
3
4
首先与简单调用不同的是,该代码不使用void作为返回值类型,而是使用了int
说明返回值有,且为int整型
接下来看一段打印调用的代码:
public static void main(String[] args){
sum(10,20); //这段为简单调用
System.out.println(sum(10,20)); //这段为打印调用
}
2
3
4
看出什么端倪了吗?
对,打印调用就是把简单调用外面套一个打印语句即可
哪还有一个呢?
赋值调用:
意思就是把方法最后得出的值赋给一个变量,由这个变量进行输出
再接代码
public static void main(String[] args){
sum(15,25); //这段为简单调用
System.out.println(sum(15,25)); //这段为打印调用
//-----------分割线------------
int number =sum(15,25);
System.out.println("赋值调用的值为:"+number); //这段为赋值调用
}
2
3
4
5
6
7
这段也能明显看出来,赋值调用也就是将sum方法产生的值赋给了number,并由number将它打印出来而已
-----------------------------------------21/07/07更新--------------------------------
# 方法的返回值
众所周知,方法的格式是以下这种:
修饰符 返回值类型 方法名 (参数列表){
代码...
return ;
}
2
3
4
前面的修饰符都明白是public ,方法名见名知意,参数列表内存有所需参数
那返回值到底有什么门道呢?
前面方法的调用我们知道,方法的返回值是由return带回给主方法main的,带回来的返回值是什么类型的这里的返回值类型就要写什么类型,这是比较简单的做法,例如以下代码:
public int sum(int a,int b){
return a+b; //这里是相加sum方法
}j
2
3
已知有int a和int b这两个int参数,所以返回值确定为int类型
可以间接看成return (int) (a+b);
但是下面这个不同:
public double sum(double a,double b){
return (int) (a+b); //这里是双精度浮点转整形,大→小
}
2
3
这里最后返回值属于int
因为return处可以括号内添加数据类型进行转换或者强制转换(强转)
以下是方法定义,调用和返回值的注意事项↓
注意:
1.方法只定义的话不会在屏幕上打印任何东西,此时需要在主方法内调用,但是简单调用也不会在屏幕上打印任何东西,如果你想在屏幕上打印你想要方法,请选用打印调用和赋值调用
2.方法只能从类中写,不能方法嵌套方法
3.方法定义的前后顺序不会影响任何东西,硬说影响什么的话只是你先看到的和后看到的区别
4.方法如果有返回值,一定要加上return 不加则报错
5.方法的返回值,一定要和最后return返回的值的类型对应起来
6.如果返回值类型为void,还想要写return的话,只需要写return自己即可
7.一个方法中可以有多个return,但是必须保证只有一个被执行到
# 方法的重载
对于功能性基本一样,只是参数不同的方法来说,如果我们直接一个一个定义,显得很乱不说,还会很难调用,这时候就可以使用一个很方便的技术:方法重载
举例以下代码:
public int sum(int a,int b){
return a+b; //定义了两个数相加的方法
}
2
3
以上是定义的两个数相加的方法,参数有两个,分别是整型的a和b,而这时如果你想使用三个数相加的功能
那就得再添加一个参数
public static int sum_three(int a,int b, int c)
可是这只是一个三位数相加的方法,如果再需要四位数相加的话你就得重新写一个sum_four,那岂不是太麻烦了?
所以我们就可以使用我们的新技术了,看以下代码示例
public int sum(int a, int b){
return a+b;
}
public int sum(int a,int b,int c){
return a+b+c;
}
2
3
4
5
6
看完代码,我觉得你可能会有疑问:这两个方法都叫sum,不会报错嘛?
那我们去写下试试~~
果然不会报错,因为它们虽然方法名称一样,但是参数列表不一样,
接下来我们再打印调用它一下~~
public void main(String[] args){
System.out.println("相加的数为:"+sum(10,20)); //这里应该是30
System.out.println("相加的数为:"+sum(10,20,30)); //这里应该是60
}
2
3
4
5
这里打印应该是:
相加的数为:30
相加的数为:60
稍微说一下:第一个调用是两个参数,所以它会自动匹配方法的第一个sum(两个参数的那个),返回a+b的值就结束了
第二个则是调用了方法的第二个(有三个参数的那个),所以它自动匹配到第二个sum上,返回a+b+c的值然后结束
这就是方法重载的简单调用了~
关于数组 →