方法紧接
- 方法的重载
package Fangfa;
public class Chongzai {
public static void main(String[] args) {
double max=max(1.2,3.3);//此处定义的max为double型,所以最后的结果没有Int型出现。
System.out.println(max);
}
public static int max(int a,int b){
if (a>b){
return a;
}
else {
return b;
}
}
public static double max(double a,double b){
if (a>b){
return a;
}
else {
return b;
}
}
}
注意:方法的定义中是允许重名的,但是形参不能在两个重名的方法中再次重复,这是规则,不被允许。方法的返回类型可以相同也可以不相同。仅仅返回类型不同不足以成为方法的重载。
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
2. 方法中的可变参数
◆JDK 1.5开始,Java支持传递同类型的可变参数给-个方法。
◆在方法声明中,在指定参数类型后加个省略(…)。
◆一个方法中只能指定一个可变参数)它必须是方法的最后-个参数。任何普通的参数必须在它之前声明。
例:
package Fangfa;
public class Kebian {
public static void main(String[] args) {
Kebian kebian= new Kebian();
kebian.max(12,23,234,44);
}
public void max(int...num){
if (num.length==0){
System.out.println("your num[] is null");
return;
}
int most=num[0];
for (int i = 1; i < num.length; i++) {
if (num[i] > most) {
most = num[i];
}
}
System.out.println("最大的数是"+most);
}
}
- 方法的递归调用
利用递归可以用简单的程序来解决一些复杂的问题。 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合
◆递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法。
java使用的是栈机制,所以在递归调用过程中,递归的数量不能太大。
例:
public class Demo05 {
public static void main(String[] args) {
System.out.println(f(7));
}
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}
最后,我们定义方法的返回值如果是void型,一般我们会选择定义一个类去接收返回值,比如上面提到的可变参数中的代码
public class Kebian {
public static void main(String[] args) {
Kebian kebian= new Kebian();//定义一个类
kebian.max(12,23,234,44);//用类去接收max方法
}
public void max(int...num){
如果定义方法的返回值不是void,我们通常在主函数(main方法)中定义一个参数来接收;
例:
double as=max(4,3);
System.out.println(as);
}
public static int max(int a,int b){
这就是方法中比较重要的一些知识点。