Java中方法的定义与使用
方法是一段可以比重复调用的代码块。相当于C语言中的函数。
(一)方法的声明:
public static 方法返回值 方法名称([参数类型 变量 ...]){
方法体代码;
[return 返回值];
}
//方括号[ ]中的值可有可无。
- 当方法以void关键字声明,那么此方法没有返回值;
若有返回值,返回值可以为基本类型和引用类型。
举例:
public class Multiply{
//主方法
public static void main(String[] args){
print();
int ret = add(2,3);
System.out.println(ret);
}
//无返回值的参数,用void关键字声明,不需要return返回值
public static void print(){
System.out.println("hello");
}
//有返回值的参数,有return返回值
public static int add(int num1,int num2){
return num1+num2;
}
}
运行结果如下:
有返回值必须给出返回值
若无返回值,用void,无返回值时可以有return,但return不返回值。
举例如下:
public class Test{
public static void main(String[] args) {
myPrint(1);
myPrint(2);
myPrint(3);
myPrint(4);
}
public static void myPrint(int x){
if (x==2) {
return ;//若执行此语句,则此语句后面的代码不被执行,方法结束调用。 }
else {
System.out.println(x);
}
}
}
(二)方法的重载
定义:方法名称相同,参数的类型、顺序或个数不同(简称:参数列表不同)
方法的签名:指的是方法名与参数,返回类型不是签名的一部分
- 不能有两个名字相同、参数类型也相同却返回不同类型值的方法
举例如下:
public class Test{
public static void main(String[] args) {
System.out.println(add(5,5));
System.out.println(add(5,5,55));
}
//以下两个方法是方法的重载,方法名相同,参数的个数不同
//返回值类型可以不一样,但是最好一样
public static int add(int x,int y){
return x+y;
}
public static int add(int x,int y,int z){
return x+y+z;
}
}
(三)方法的递归
定义:指的是一个方法自己调用自己的方式。
递归方法的特点:
方法必须有递归的结束条件
方法在每次递归处理的时候一定要作出一些变更。
public class SumOne{
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int num){
if (num == 1) {
return 1;
}
else {
return num+sum(num-1);
}
}
}
运行结果如下: