Java基础知识(五)——方法
定义
方法是一段可被反复调用的代码段(类比函数)
注:方法与函数是相同的概念,面向对象的语言称为方法,面向过程的语言称为函数
格式
public static 返回值类型 方法名称(类型 参数1,类型 参数2,...){
程序语句;
[return 表达式];
}
注:如果方法没有返回值,则在返回值类型处明确写出void
eg.
public class Test{
public static void main(String[] args){
printlnfo();
printlnfo();
printinfo();
System.out.println("Hello World!");
}
public static void printlnfo(){ //定义方法,无返回值
char c[] = {'H','e','l','l','o',',','L','X','H'};
for(int x=0;x<c.length;x++){
System.out.print(c[x]);
}
System.out.println(""); //换行
}
}
结果:
Hello,LXH
Hello,LXH
Hello,LXH
Hello world!
public class Test{
public static void main(String[] args){
int one = addOne(10,20);
float two = addTwo(10.3f,13.3f);
System.out.println("结果是:" + one);
System.out.println("结果是:" + two);
}
public static int addOne(int x,int y){ //定义方法,有返回值
int temp = 0;
temp = x + y;
return temp;
}
public static int addTwo(float x,float y){ //定义方法,有返回值
int temp = 0;
temp = x + y;
return temp;
}
}
结果:
结果是:30
结果是:23.6
重载
方法的重载就是方法的名称相同,但参数类型以及参数个数不同。通过传递参数的个数以及类型不同以完成不同功能的方法调用
注
另外的重载方式中返回值类型可以相同,但返回的参数类型以及个数不能相同
eg
public class Test{
public static void main(String[] args){
int one = add(10,20);
int two = add(10,20,30);
float three = add(10.3f,13.3f);
System.out.println("结果是:" + one);
System.out.println("结果是:" + two);
System.out.println("结果是:" + three);
}
public static int add(int x,int y){
int temp = 0;
temp = x + y;
return temp;
}
public static int add(int x,int y,int z){
int temp = 0;
temp = x + y+z;
return temp;
}
public static float add(float x,float y){
float temp = 0;
temp = x + y;
return temp;
}
}
结果
30
60
23.6
System.out.println()
System.out.println()也属于重载方法,可以打印任何数据
return
return的作用类似于continue以及break需要与if结构一同使用
eg.
public class Test{
public static void main(String[] args){
System.out.println("1");
fun();
System.out.println("2");
}
public static void fun(int x){
System.out.println("3");
if(x==10){
return;
}
System.out.println("4");
}
结果
1
3
2
递归调用
递归调用是一种特殊的调用方式,方法自己调用自己
必需又有一个明确的结束条件
eg.
public class Test{
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);
}
}
}