方法的重载 :
实现的三个条件:
1.一个类中的多个方法
2.方法名相同
3.参数列表不同 | 方法签名不同(参数个数不同,参数类型不同,不同类型的参数顺序不同)
方法签名 : 方法的唯一标识
方法名+参数列表 = 方法签名
重载方法的调用 :
根据实参区分
分析 :
1.方法的重载与参数名无关
2.方法的重载与方法的修饰符无关
3.方法的重载与方法的返回值无关]
总结 :
方法的重载只与方法名与参数列表有关
方法就是封装的体现
方法的重载就是多态的一种体现
递归 : (了解)
定义:方法的内部自己调用自己
优点 : 程序设计更简单,简洁
缺点 :使用不好,极有可能造成内存的溢出
实现组成:
基线条件|递归头 : 停止自己调用自己的条件
递归条件|递归体 : 自己调用自己
执行过程 :
1.递归前进段 : 不停的自己调用自己
2.临界条件 : 停止自己调用自己的条件
3.递归后退段 : 从临界条件开始,不停的将结果返回给上一层
public class Class037_OverLoad{
public static void main(String[] args) {
getSum(3.0,5.0);
}
//求2个数的和 :
//返回值
//2个参数
//getSum
public static void getSum(int i,int j){
System.out.println("两个int类型整数的和"+(i+j));
}
private boolean getSum(int i,int j){
System.out.println("两个int类型整数的和"+(i+j));
return false;
}
public static void getSum(double i,double j){
System.out.println("两个double类型的和"+(i+j));
}
public static void getSum(int i,double j){
System.out.println("1个int1个double类型的和"+(i+j));
}
public static void getSum(double i,int j){
System.out.println("1个double个int类型的和"+(i+j));
}
}
public class Class038_Practice{
public static void main(String[] args) {
}
/*
1.求长方形面积 长*宽
2.求圆形面积 π*半径的平方
3.求梯形面积 (上边+下边)*高/2
*/
public static int getArea(int w,int h){
return w*h;
}
public static double getArea(int r){
return 3.14*r*r;
}
public static double getArea(int x,int y,int h){
return (x+y)*h/2;
}
//打印九九乘法表
public static void print(){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
//打印m行乘法表
public static void print(int h){
for(int i=1;i<=h;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
public class Class039_Recurtion{
public static void main(String[] args) {
System.out.println(rec(-1));;
}
//求阶乘 : 求某一个数阶乘
public static int rec(int i){
if(i<=0){
System.out.println("数据i为负数,不能求阶乘!!!");
return 0;
}
if(i==1){
return 1;
}
return i*rec(i-1);
}
}