java方法

# java方法

## 1.方法的定义

1. 什么是java方法:

   Java方法是语句的集合,他们在一起执行某功能,一般情况下:

   方法是解决一类问题的步骤的有序组合;方法包含于类或者对象中;方法在程序中被创建,在其他地方被引用

2. 设计方法的原则:一个方法只完成一个功能,这样有利于我们后期拓展
3. 方法的命名规则:首字母小写,驼峰原则

 

##  2.方法的重载

方法的重载:方法名可以一样,但是方法的参数不可以一样,调用方法时可以更具参数类型选择不同的同名方法,这就是方法的重载

方法重载原则:
1.方法名称必须相同
2.参数列表必须不同(个数不同、或者类型不同、或者顺序不同)
3.返回值类型可以相同也可以不同
4.仅仅返回类型不同不能成为方法的重载

```java
package method;
//方法的重载:方法名可以一样,但是方法的参数不可以一样,调用方法时可以更具参数类型选择不同的同名方法,这就是方法的重载
/*
方法重载原则:
1.方法名称必须相同
2.参数列表必须不同(个数不同、或者类型不同、或者顺序不同)
3.返回值类型可以相同也可以不同
4.仅仅返回类型不同不能成为方法的重载
 */
public class Demo03 {
    public static void main(String[] args) {
        System.out.println(max(2.5,3.6));
        System.out.println(max(2,3));

    }
    public static int max(int a,int b){//比大小的方法
        int m=0;
        if(a==b){
            System.out.println("两数相等");
            return 0;//return还有终止方法的作用,一旦执行此语句,方法就会终止,所以上下会有两个return并不矛盾,这里return后面只要是int类型就行
        }
        if(a>b){
            m=a;
        }else
        {
            m=b;
        }
        return m;
    }
    public static double max(double a,double b){//比大小的方法
        double m=0;
        if(a==b){
            System.out.println("两数相等");
            return 0;
        }
        if(a>b){
            m=a;
        }else
        {
            m=b;
        }
        return m;
    }
}
```

## 3.可变参数

(1.格式 :

数据类型 ... 参数名

(2.注意:

1.一个方法中只能有一个可变参数
2.可变参数一定要在普通参数后面,要放在参数列表末尾

```java
package method;
//可变参数
/*
格式 :
数据类型 ... 参数名
注意:1.一个方法中只能有一个可变参数
2.可变参数一定要在普通参数后面,要放在参数列表末尾
 */
public class Demo04
{
    public static void main(String[] args) {
        Demo04 demo04=new Demo04();//因为底下的方法没有使用static修饰,所以必须创建一个类的对象来调用该类的函数
        demo04.test(1,1,2,3,4);
        printMax();
        System.out.println("最大的数为"+printMax(1,3,4,6,8,5,9,10,8));
    }
    public  void test(double a, int ...i){//a为普通参数,i为可变参数
        System.out.println(a);
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
        System.out.println(i[3]);
    }
    public static  int printMax(int ...i){//选出最大的参数
        if(i.length==0){//获取参数个数
        System.out.println("没有参数");
        return 0;}
        int result=i[0];
        for(int a=1;a<i.length;a++){//遍历参数列表,从中找到最大的
            if (result < i[a]) {
                result=i[a];
            }
            }
        return result;
        }
    }
```

## 4.递归(重难点)

1.什么是递归:递归就是自己调用自己,A方法调用A方法
2.递归的作用:递归可以用简答的程序来解决复杂的问题,可以将一个大问题层层转换成一个规模较小的问题解决。需要多次重复计算,大大减少代码量。递归的能力就在于用有限的语句定义对象的无限集合。
3.递归结构包含两部分:
  递归头:什么时候不调用自身方法,如果没有头,将陷入死循环。
  递归体:什么时候需要调用自身方法
4.递归阶段:
边界:程序直到边界就会停止循环,一步一步返回值
前阶段:只要没到达边界,就会一直不停调用自身
返回阶段:从第一个开始慢慢返回
5.递归层数太多会导致电脑无法正常处理

6.递归的主要目的是提供一种思维

```java
package method;
//递归(重点)
/*
1.什么是递归:递归就是自己调用自己,A方法调用A方法
2.递归的作用:递归可以用简答的程序来解决复杂的问题,可以将一个大问题层层转换成一个规模较小的问题解决。需要多次重复计算,大大减少代码量。递归的能力就在于用有限的语句定义对象的无限集合。
3.递归结构包含两部分:
  递归头:什么时候不调用自身方法,如果没有头,将陷入死循环。
  递归体:什么时候需要调用自身方法
4.递归阶段:
边界:程序直到边界就会停止循环,一步一步返回值
前阶段:只要没到达边界,就会一直不停调用自身
返回阶段:从第一个开始慢慢返回
5.递归层数太多会导致电脑无法正常处理
 */
public class Demo05 {
    public static void main(String[] args) {
        System.out.println(test(5));
    }
    public static  int test(int a) {
        if (a < 0) {
            System.out.println("负数没有阶乘");
            return 0;
        } else if (a > 0) {
            if (a == 1) {
                return 1;
            } else {
//这里就用到了递归,比如若果是a=5,那就会如此执行,test(5)=5*test(4),test(4)=4*test(3)...直到test(2)=2*test(1),test(1)=1,最后都返回成为5*4*3*2*1
                return a * test(a - 1);//
            }
        }
        return 0;
    }
}
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值