day09-java 方法

java 方法

1. 重载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ReS9jsuQ-1615202082098)(C:\Users\23236\AppData\Roaming\Typora\typora-user-images\image-20200906000134106.png)]

public staic void max(int num1,int num2){}
public static int max(int num1,int num2){}//不是重载
public static double max(double num1,double num2){}
public staic void max(int num1,int num2,int num3){}

2.命令行传参

//必须回退到包名目录,进行运行,
..>javac Test.java
../src>Java com.codesing.Test hello world//回退到包目录,并且可传参
    

3.可变参数

jdk5开始引入,

同类型可变参数,在指定参数类型后加一个省略号…

一个方法中只能定义一个可变参数,必须是方法的最后一个参数,任何普通参数在它之前声明

public static void printMax(double...numbers){
    if(numbers.length == 0){
        System.out.println("no argyment passed");
    }
    double result = numbers[0];
    //排序
    for(int i=1;i<numbers.length;i++){
        if(number[i]>result){
            result = numbers[i]
        }
    }
    System.out.println(result);
}//相当于传进来一个数组

4. 递归

1.递归头:什么时候不调用自身方法,如果没有头,将陷入死循环

2.递归体:什么时候需要调用自身方法

a.边界条件:边界,b.前阶段,c.返回阶段

public class Compute {
    public static void main(String[] args) {
        Compute compute = new Compute();
        ArrayList arrayList = new ArrayList();
        arrayList.add(0);
        while (arrayList.size()>0) {
            arrayList.clear();
            Scanner scanner = new Scanner(System.in);
            System.out.println("= = = =  =这里是计算数据中心 = =  = = = =");
            System.out.println("请输入您要计算的数,以任意字母结束:");
            while (scanner.hasNextDouble()) {
                double sc = scanner.nextDouble();
                arrayList.add(sc);
            }
            if (arrayList.size() == 2) {
                System.out.println("这里是常规运算");
                //加减乘除
                System.out.println("计算结果为:"+compute.count((double)arrayList.get(0),(double)arrayList.get(1)));
                continue;
            }
            if (arrayList.size() == 1) {
                System.out.println("这里是阶乘运算");
                //阶乘
                System.out.println("计算结果为:"+compute.factorial((double)arrayList.get(0)));
                continue;
            }
            else {
                System.out.println("输入有误,请重新输入");
                arrayList.add(0);//避免退出循环
                continue;
            }
        }
    }

    public double count(double i, double j) {
        System.out.println("############");
        System.out.println("1:加法");
        System.out.println("2:减法");
        System.out.println("3:乘法");
        System.out.println("4:除法");
        System.out.println("############");
        System.out.println("请输入您的操作数字");
        Scanner scanner = new Scanner(System.in);
        int rs = scanner.nextInt();
        if (rs == 1) {
            return i + j;
        }
        if (rs == 2) {
            return i - j;
        }
        if (rs == 3) {
            return i * j;
        }
        if (rs == 4) {
            return i / j;
        } else {
            System.out.println("输入有误");
            return 0;
        }
    }
//递归
    public double factorial(double i) {
        if (i == 1) {
            return 1;
        } else {
            return i*factorial(i-1);
        }
    }
}

5.值传递&引用传递

//值传递
public class Demo01 {
   public static void main(String[] args) {
       int a = 1;
       System.out.println("a="+a);
       Demo01 demo01 = new Demo01();//a=1
       int b = demo01.change(a);
       System.out.println("a="+a);//a=1  值传递未改变a的值
       System.out.println("b="+b);//b=10
   }
   public int change(int a){
       a = 10;
       return a;
   }
}

//引用传递
public class Demo02 {
   public static void main(String[] args) {
       Person person = new Person();
       System.out.println(person.name);//null
       Demo02 demo02 = new Demo02();
       demo02.change(person);
       System.out.println(person.name);//jjj  引用传递,改变了值
   }
   public void change(Person person){
       person.name = "jjj";
   }
}
class Person{
   String name;
}

person.name);//jjj 引用传递,改变了值
}
public void change(Person person){
person.name = “jjj”;
}
}
class Person{
String name;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值