学习Java笔记记录Day6

一.方法的重载

在java编程中,方法可以同名,但是!需要参数必须不同,才可同名,这种方法就叫做方法的重载,另外,对于返回值不做要求;如下

package com.javaStudy.base.Method;

import java.util.Scanner;

public class Demo4 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数");
        int num1 = input.nextInt();
        System.out.println("请输入一个数");
        int num2 = input.nextInt();
        int num3 = add(num1,num2);//此时调用第一个方法
        System.out.println(num3);

    }
    public static int add(int num1,int num2){
        return num1+num2;
    }
    public static double add(double num1,double num2){
        return num1+num2;
    }
    public static int add(int num1,int num2,int num3){
        return num1+num2+num3;
    }

}
package com.javaStudy.base.Method;

import java.util.Scanner;

public class Demo4 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数");
        double num1 = input.nextDouble();
        System.out.println("请输入一个数");
        double num2 = input.nextDouble();
        double num3 = add(num1,num2);//此时调用第二个方法
        System.out.println(num3);

    }
    public static int add(int num1,int num2){
        return num1+num2;
    }
    public static double add(double num1,double num2){
        return num1+num2;
    }
    public static int add(int num1,int num2,int num3){
        return num1+num2+num3;
    }

}
package com.javaStudy.base.Method;

import java.util.Scanner;

public class Demo4 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数");
        int num1 = input.nextInt();
        System.out.println("请输入一个数");
        int num2 = input.nextInt();
        System.out.println("请输入一个数");
        int num4 = input.nextInt();
        int num3 = add(num1,num2,num4);//此时调用第三个方法
        System.out.println(num3);

    }
    public static int add(int num1,int num2){
        return num1+num2;
    }
    public static double add(double num1,double num2){
        return num1+num2;
    }
    public static int add(int num1,int num2,int num3){
        return num1+num2+num3;
    }

}

从上述代码可以看出,方法名一样,但其参数不同,故可以运行,这就是方法的重载。

二.可变行参数

当不确定传入的数据有几个时,可以使用可变行参数来表示,

package com.javaStudy.base.Method;

public class Demo5 {
    public static void main(String[] args) {
        int max = printMax(123, 123123, 121212, 2222);
        System.out.println(max);

    }

    public static int printMax(int... num1) {//相当于num1是一个数组,可以传入多个数据,徐4需要在int后加入省略号
        if (num1.length == 0) {
            System.out.println("不存在数据,请重试");
        }

        int result = num1[0];
        for (int i = 0; i < num1.length; i++) {
            if (num1[i] > result) {
                result = num1[i];
            }
        }
        return result;
    }
}

三.递归!(★★★)

递归的本质就是自己调用自己,减少了代码量,但是在时间复杂度和空间复杂度较高,例如以下代码:

package com.javaStudy.base.Method;

public class Demo6 {
    public static void main(String[] args) {
        System.out.println(test(10));

    }
    public static int test(int num1){
        if (num1 == 1){
            return 1;
        }else {
            return num1*test(num1-1);
        }
    }
}

 四.一个简单的计算器,包括了四则运算法则

package com.javaStudy.base;

import java.util.Scanner;

public class Test7 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int result = 0 ;
        double result1 = 0.0;
        System.out.println("请输入您要使用的算法符号");
        String i = input.next();
        System.out.println("请输入第一个数");
        int num1 = input.nextInt();
        System.out.println("请输入第二个数");
        int num2 = input.nextInt();
        switch (i){
            case "+":
                result = add(num1,num2);
                break;
            case "-":
                result = reduce(num1,num2);
                break;
            case "*":
                result = mul(num1,num2);
                break;
            case "/":
                result1 = div(num1,num2);
                break;
        }
        if (result1!=0){
            System.out.println(result1);
        }else {
            System.out.println(result);
        }
    }
    public static int add(int num1,int num2){
        return num1+num2;
    }
    public static int reduce(int num1,int num2){
        return num1-num2;
    }
    public static int mul(int num1,int num2){
        return num1*num2;
    }
    public static double div(int num1,int num2){
        if (num2 == 0){
            return 0;
        }
        return num1/num2;
    }
}

五.数组

数组是用来存放多个数据的

package com.javaStudy.base.array;

public class Demo1 {
    public static void main(String[] args) {
        int[] num1 ;//定义一个数组
        num1 = new int[10];//定义该数组的长度为10
        num1[0] = 1;
        num1[1] = 2;
        num1[2] = 3;
        num1[3] = 4;
        num1[4] = 5;
        num1[5] = 6;
        num1[6] = 7;
        num1[7] = 8;
        num1[8] = 9;
        num1[9] = 10;
        int sum = 0;
        for (int i = 0;i<num1.length;i++){
            sum = sum+num1[i];
        }
        System.out.println(sum);
    }
}

数组刚开始创建时

数组存放于栈中,而初始化数组后,数组的相关数据存放于堆中

数组的初始化又分为动态初始化和静态初始化        

package com.javaStudy.base.array;

public class Demo2 {
    public static void main(String[] args) {
        int[] i = new int[10];//动态初始化
        i[0] = 1;//对第一个元素进行赋值
        System.out.println(i[2]);//输出未赋值的地址时,会默认输出0
        int[] i1 = {1,2,3,4,5,6};//静态初始化
        System.out.println(i1[7]);//输出未赋值的地址,会显示越界
    }
}
//java.lang.ArrayIndexOutOfBoundsException,越界错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值