Java技术详解----方法

目录

 

01-方法的概述

02-方法练习之取钱和存钱

03-方法练习之求积

04-方法练习之结合键盘录入

05-方法重载

06-方法重载练习

07-单一职责原则(了解)

08-栈的概念

09-递归的概念

10-数组的概念

11-数组的初始化及动态初始化

12-java中的堆

13-内存图解之一个数组

14-内存图解之两个数组

15-内存图解之三个引用


01-方法的概述

  • 为什么要有方法?

    • 提高代码的复用性

  • 什么是方法?

    • 一个功能代码模块

  • 语法

    修饰符  返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
        功能代码;
        return 返回值;
    }
    • 修饰符

      • public static

    • 返回值类型

      • 规定返回值的数据类型

    • 方法名

      • 是标识符的一种

      • 如果是一个单词,全部小写

      • 如果是多个单词,从第二个单词开始首字母大写

    • 参数类型 参数名1,参数类型 参数名2...

      • 定义方法执行时的输入参数

    • 功能代码

      • 复用的代码模块

    • return 返回值;

      • 返回结果,并结束方法

  • 代码实现

    public static void main(String[] a) {
        //需求:两个数,相加之后打印结果,相乘之后打印结果,相除之后打印结果,求模之后打印结果
    ​
        //业务一:求2和1
        int num1 = 2;
        int num2 = 1;
        //调用firstMethod方法
        firstMethod(num1, num2);
    ​
    ​
        //业务二:求4和3
        num1 = 4;
        num2 = 3;
        //调用firstMethod方法
        firstMethod(num1, num2);
    ​
    }
    ​
    ​
    ​
    /**
    * 对两个正数进行求和、求积、求商、求余操作
    * @param num1
    * @param num2
    */
    public static void firstMethod(int num3 , int num4) {
        int sum = num3 + num4;
        System.out.println("sum : " + sum);
    ​
        int amass = num3 * num4;
        System.out.println("amass : " + amass);
    ​
        int consult = num3 / num4;
        System.out.println("consult : " + consult);
    ​
        int residue = num3 % num4;
        System.out.println("residue : " + residue);
    }
    

     

02-方法练习之取钱和存钱

  • 需求

    • 银行取钱、存钱

  • 代码实现

    public static void main(String[] a) {
    ​
        int money = getMoney(1000);
    ​
        saveMoney(10000000);
    ​
    }
    ​
    /**
    * 取钱
    * @param money,金额
    * @return
    */
    public static int getMoney(int money) {
        System.out.println("客服丽丽,^_^,您要取多少钱?");
        System.out.println("要取:"+money+"美金");
        System.out.println("好的,先生,^_^");
        return money;
    }
    ​
    /**
    * 存钱
    * @param money,金额
    */
    public static void saveMoney(int money) {
        System.out.println("客服香香,^_^,您要存多少钱");
        System.out.println("要存" + money + "美金");
        System.out.println("好的,先生,"+money+"美金,钱存好了,^_^");
    ​
    }

     

03-方法练习之求积

  • 需求

    • 求两个数的积

  • 代码实现

    public static void main(String[] args) {
        //需求:求两个数的积,1,输入参数:两个数;2,返回值:积
        int num1 = 1;
        int num2 = 2;
        int ji1 = getJi(num1, num2);
        System.out.println(ji1);
        System.out.println("--------------");
    ​
        int ji2 = getJi(1, 2);
        System.out.println(ji2);
    }
    ​
    ​
    /**
    * 求积
    * @param num1
    * @param num2
    * @return
    */
    public static int getJi(int num1 , int num2) {
        return num1 * num2;
    }

     

04-方法练习之结合键盘录入

  • 需求

    • 键盘录入两个数据,返回两个数中的较大值

    • 键盘录入两个数据,比较两个数是否相等

  • 代码实现

     public static void main(String[] args) {
            //1,创建键盘录入对象
            Scanner scanner = new Scanner(System.in);
            
            while(true) {
                //2,提示录入
                System.out.println("请录入第一个数:");
                //3,录入第一个数
                int num1 = scanner.nextInt();
                //4,提示录入
                System.out.println("请录入第二个数:");
                //5,录入第二个数
                int num2 = scanner.nextInt();
                //6,调用方法getMax
                int max = getMax(num1, num2);
                System.out.println("max : " + max);
                //7,调用方法isEquals
                String msg = isEquals(num1, num2);
                System.out.println(msg);
                
                
            }
        }
        
        /**
         * 获取最大值
         * @param num1
         * @param num2
         * @return
         */
        public static int getMax(int num1 , int num2) {
            return num1 > num2 ? num1 : num2;
        }
        
        public static String isEquals(int num1 , int num2) {
    //      if (num1 == num2) {
    //          return "相等";
    //      }  else {
    //          return "不相等";
    //      }
            if (num1 == num2) {
                return "相等";
            }  
            return "不相等";
    ​
        }

     

05-方法重载

  • 概念

    • 同一个类中,方法名相同,参数列表(参数类型、参数个数)必须不同,与返回值类型无关。

  • 代码实现

    public static void main(String[] args) {
        int sum1 = getSum(1, 2);
        System.out.println(sum1);
        double sum2 = getSum(1.1, 1.1, 1.1);
        System.out.println(sum2);
        double sum3 = getSum(1, 2, 3, 4);
        System.out.println(sum3);
    }
    ​
    ​
    /**
    * 求两个整数的和
    * @param num1
    * @param num2
    * @return
    */
    public static int getSum(int num1 ,int num2) {
    ​
        return num1 + num2;
    }
    ​
    ​
    ​
    /**
    * 求三个小数的和
    * @param num1
    * @param num2
    * @param num3
    * @return
    */
    public static double getSum(double num1 , double num2, double num3) {
        return num1 + num2 + num3;
    }
    ​
    ​
    /**
    * 求四个整数的和
    * @param num1
    * @param num2
    * @param num3
    * @param num4
    * @return
    */
    public static double getSum(int num1 , int num2 ,int num3 , int num4) {
        return num1 + num2 + num3 + num4;
    }

     

 

06-方法重载练习

  • 需求

    • 比较两个数据是否相等,参数类型分别为两个int类型,两个double类型

  • 代码实现

    public static void main(String[] args) {
        String msg = isEquals(1.1, 1.1);
        System.out.println(msg);
        isEquals(1, 1);
    }
    ​
    public static void isEquals(int num1 ,int num2) {
        System.out.println(num1 == num2 ? "相等" : "不相等");
    }
    ​
    public static String isEquals(double num1 ,double num2) {
        return num1 == num2 ? "相等" : "不相等";
    }

     

 

07-单一职责原则(了解)

  • 分类

    • 五大基本设计原则(SOLID)

      • 单一职责原则(single responsibility princple)

      • 开闭原则(open close princple)

      • 迪米特法则(Law Of Demeter)

      • 接口隔离原则(Interface Isolation Princple)

      • 依赖倒置原则(Dependency Inversion Princple)

  • 单一职责原则(single responsibility princple)

    • 一个模块、一个方法只负责一件事

  • 代码实现

    • 反例

      • 代码的耦合度过高,相互之间都有关联

      • 代码复用性较差

    public static void main(String[] args) {
        //对两个数,求和、求商、求积
        int num1 = 1;
        int num2 = 2;
    ​
        int sum = num1 + num2;
        System.out.println("sum : " + sum);
     
        int shang = num1 / num2;
        System.out.println("shang : " + shang);
    ​
        int ji = num1 * num2;
        System.out.println("ji : " + ji);
    ​
    }
    • 正例

    public static void main(String[] args) {//测试,调用方法
        //对两个数,求和、求商、求积
        int num1 = 1;
        int num2 = 2;
    ​
        //alt+shift+m:快速生成方法
        getSum(num1, num2);
    ​
        getShang(num1, num2);
    ​
        getJi(num1, num2);
    ​
    }
    ​
    private static void getJi(int num1, int num2) {
        int ji = num1 * num2;
        System.out.println("ji : " + ji);
    }
    ​
    private static void getShang(int num1, int num2) {
        int shang = num1 / num2;
        System.out.println("shang : " + shang);
    }
    ​
    public static void getSum(int num1, int num2) {
        int sum = num1 + num2;
        System.out.println("sum : " + sum);
    }

     

 

08-栈的概念

  • 概述

    • 它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈 顶,相对地,把另一端称为栈底

    • 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成 为新的栈顶元素

    • 从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈 顶元素。

 

09-递归的概念

  • 概念

    • 方法自己调用自己

  • 需求

    • 求5的阶乘

  • 代码实现

    • 非递归

    public static void method01(int num) {
        int jieCheng = 1;
        for (int i = 1; i <= num; i++) {
            jieCheng *= i;
        }
        System.out.println(jieCheng);
    }
    • 递归

    public static int jieCheng(int num) {
        if (num == 1) {
            return 1;
        } else {
            return num * jieCheng(num - 1);
        }
    }

     

  • 循环和递归的区别

    • 相同点

      • 重复做事

    • 不同点

      • 循环得知道循环次数,而递归不需要知道循环次数

      • 循环更加节省内存,而递归不节省内存

 

10-数组的概念

  • 为什么要有数组

    • 方便维护一组相同类型的数据

  • 初始化

    • 动态初始化

    • 静态初始化

11-数组的初始化及动态初始化

  • 数组初始化

    • 创建数组,并初始化数组中的元素

  • 分类

    • 动态初始化

      • 创建数组,给定数组长度,由系统给元素设定默认初值

    • 静态初始化

  • 语法

    数据类型[] 变量名 = new 数据类型[长度];
  • 代码实现

    int[] nums = new int[6];
    System.out.println(nums[0]);
    System.out.println(nums[1]);
    System.out.println(nums[2]);
    System.out.println(nums[3]);
    System.out.println(nums[4]);
    //最大索引 = 数组长度 -1
    System.out.println(nums[5]);
    ​
    boolean[] flags = new boolean[6];
    System.out.println(flags[0]);
    ​
    String[] strs = new String[6];
    System.out.println(strs[0]);

     

12-java中的堆

    • 方法

    • 局部变量

    • 对象

    • 成员变量

  • 方法区

    • 面向对象

13-内存图解之一个数组

14-内存图解之两个数组

15-内存图解之三个引用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值