方法:
-
静态方法导入
import static java.lang.Math.*;
调用:类名.方法名
2.定义方法
访问权限 [static] 返回值类型 方法名(参数)
{ 语句; }
3.可变参数的方法
Example:
public double max(int y,double ... x)
{ }
调用:temp.max(2,1.0,2.5,3.6,66.69)
特点:
1.只能出现在方法发参数列表的最后
2.”...”位于变量类型和变量名之间,有无空格均可
3.调用时,编译器为该可变参数隐含创建一个数组在方法体中以数组形式访问可变参数
例子:
源程序:
public class Changes {
public static void main(String args[]) {
System.out.print(max(1.2,9.4,88.5,75.3,45.369,15.2));
}
public static double max(double ... d) {
double largest=Double.MIN_VALUE;
for(double v:d) {
if(v>largest)
largest=v;
}
return largest;
}
}
截图:
4.方法重载
满足:
-
方法名相同
-
参数类型,个数,顺序不同
-
方法的返回值不做为重载的条件
例子:
源代码:
public class Overload {
public static void main(String args[]) {
System.out.println(max(1,9,6,5,7));
System.out.println(max(7.2,8.5,9.6,8.8,5.8));
}
//同名不同作用
public static int max(int ...n) {
int maxx=0;
for(int temp:n) {
if(temp>maxx)
maxx=temp;
}
return maxx;
}
public static double max(double ...n) {
double maxx=Double.MIN_VALUE;
for(double b:n) {
if(b>maxx)
maxx=b;
}
return maxx;
}
}
截图:
5.递归方法:自己调用自己
递归::”从前到后”
递推 :”从后到前”,通常可用循环实现。
例子
源代码:
//汉诺塔
//递归
import java.util.Scanner;
public class Hanoi {
@SuppressWarnings("resource")
public static void main(String args[]) {
System.out.print("enter the number of tower:");
Scanner scan=new Scanner(System.in);
int in=scan.nextInt();
System.out.println("Handle:");
handle(in,'A','B','C');
}
//每一步的移动
//将第n层从A移动到B;
static void move(int n,char A,char B) {
System.out.println("第"+n+"个"+A+"->"+B);
}
//递归处理汉诺塔
//将n层从A借助B移动到C;
static void handle(int n,char A,char B,char C) {
if(n==1)
move(1,A,C);
else {
handle(n-1,A,C,B);
move(n,A,C);
handle(n-1,B,A,C);
}
}
}
截图: