学习java的第5天

01. 方法概述和格式说明

  • 方法

    • 概述
      • 一个功能代码模块
    • 作用
      • 提高代码的复用性
  • 语法

    修饰符  返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
        功能代码;
        return 返回值;
    }
    
    • 修饰符
      • public stiatic
    • 返回值类型
      • 规定返回值得数据类型
    • 方法名
      *
        • 是标识符的一种
        • 如果是一个单词,全部小写
        • 如果是多个单词,从第二个单词开始首字母大写
      • 参数类型 参数名1,参数类型 参数名2…
        • 定义方法执行时的输入参数
      • 功能代码
        • 复用的代码模块
      • return 返回值;
        • 返回结果,并结束方法
  • 代码实现

    import java.util.Scanner;
    
    /**
     * 方法
     * 需求:加减乘除
     * @author 海锋
     *
     */
    public class Demo01_Method {
    	
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.println("输入两个数:");
    		int num1 = input.nextInt();
    		int num2 = input.nextInt();
    		//调用方法
    		System.out.println(addMethod(num1,num2));
    		System.out.println(subMethod(num1,num2));
    		System.out.println(multiplyMethod(num1,num2));
    		System.out.println(divideMethod(num1,num2));
    		input.close();
    	}
    	//加法
    	public static int addMethod(int num1,int num2) {
    		
    		int sum = num1 + num2;
    		return sum;
    	}
    	//减法
    	public static int subMethod(int num1,int num2) {
    		int sub = num1 - num2;
    		return sub;
    	}
    	//乘法
    	public static int multiplyMethod(int num1,int num2) {
    		int multiply = num1 * num2;
    		return multiply;
    	}
    	//除法
    	public static double divideMethod(int num1,int num2) {
    		double divide = num1 / num2;
    		return divide;
    	}
    }
    
    

02. 方法练习之存钱取钱

  • 代码实现

    /**
     * 方法
     * 需求:银行存取钱
     * @author 海锋
     *
     */
    public class Demo02_Method {
    	
    	public static void main(String[] a) {
    
    	    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. 方法练习之加减乘除

import java.util.Scanner;

/**
 * 方法
 * 需求:加减乘除
 * @author 海锋
 *
 */
public class Demo03_Method {
	
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("输入两个数:");
		double num1 = input.nextInt();
		double num2 = input.nextInt();
		//调用方法
		System.out.println(addMethod(num1,num2));
		System.out.println(subMethod(num1,num2));
		System.out.println(multiplyMethod(num1,num2));
		System.out.println(divideMethod(num1,num2));
		input.close();
	}
	//加法
	public static double addMethod(double num1,double num2) {
		
		double sum = num1 + num2;
		return sum;
	}
	//减法
	public static double subMethod(double num1,double num2) {
		double sub = num1 - num2;
		return sub;
	}
	//乘法
	public static double multiplyMethod(double num1,double num2) {
		double multiply = num1 * num2;
		return multiply;
	}
	//除法
	public static double divideMethod(double num1,double num2) {
		double divide = num1 / num2;
		return divide;
	}
}

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

  • 需求
    • 键盘录入两个数据,返回两个数中的较大值
    • 键盘录入两个数据,比较两个数是否相等
import java.util.Scanner;

/**
 * 方法练习
 * 需求:键盘录入两个数据,返回两个数中的较大值
		键盘录入两个数据,比较两个数是否相等

 * @author 海锋
 *
 */
public class Demo01_Method {
	
	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("最大值是:"+getMax(num1, num2));
		System.out.println("是否相等:"+isEquals(num1, num2));
		input.close();
	}
	/**
	 * 方法一:最大值
	 * @param num1
	 * @param num2
	 * @return
	 */
	public static int getMax(int num1 , int num2) {
		return num1 > num2 ? num1 : num2;
	}
	/**
	 * 方法二:是否相等
	 * @param num1
	 * @param num2
	 * @return
	 */
	public static String isEquals(int num1 , int num2) {
		if(num1 == num2) {
			return "相等";
		
		}else {
			return "不相等";
		}
	}
}

05. 方法重载

  • 概念

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

    /**
     * 方法的重载
     * 需求:  求和
     * 		2个整数
     * 		3个小数
    		4个整数
     * @author 海锋
     *
     */
    public class Demo04_Method {
    	
    	public static void main(String[] args) {
    	
    		//调用方法
    		System.out.println(addMethod(1,2));
    		System.out.println(addMethod(3.4,4.6,6.7));
    		System.out.println(addMethod(5,3,7,9));
    		
    	}
    	//加法
    	/**
    	 * 两个数求和的方法
    	 * @param num1
    	 * @param num2
    	 * @return
    	 */
    	public static int addMethod(int num1,int num2) {
    		
    		int sum = num1 + num2;
    		return sum;
    	}
    	/**
    	 * 三个小数求和的方法
    	 * @param num1
    	 * @param num2
    	 * @param num3
    	 * @return
    	 */
    	public static double addMethod(double num1,double num2,double num3) {
    		
    		double sum = num1 + num2 + num3;
    		return sum;
    	}
    	/**
    	 * 四个数求和的方法
    	 * @param num1
    	 * @param num2
    	 * @param num3
    	 * @param num4
    	 * @return
    	 */
    	public static int addMethod(int num1,int num2,int num3,int num4) {
    		
    		int sum = num1 + num2 + num3 + num4;
    		return sum;
    	}
    }
    

06. 单一职责原则

  • 分类

    • 五大基本设计原则(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);
      }
      

07. 栈的概念

  • 概述
    • 它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈 顶,相对地,把另一端称为栈底
    • 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成 为新的栈顶元素
    • 从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈 顶元素。

08. 递归的概念

  • 概念

    • 方法自己调用自己
  • 需求

    • 求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);
    }
}
  • 循环和递归的区别

    • 相同点
      • 重复做事
    • 不同点
      • 循环得知道循环次数,而递归不需要知道循环次数
      • 循环更加节省内存,而递归不节省内存

09. 数组的概念

  • 为什么要有数组
    • 方便维护一组相同类型的数据
  • 初始化
    • 动态初始化
    • 静态初始化

10. 数组的初始化及动态初始化

  • 数组初始化

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

    • 动态初始化
      • 创建数组,给定数组长度,由系统给元素设定默认初值
    • 静态初始化
  • 语法

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

    
    /**
     * 数组
     * @author 海锋
     *
     */
    
    public class Demo07_Array {
    	public static void main(String[] args) {
    		long[] num = new long[6];		
    		for( int i = 0;i < num.length;i++) {
    			System.out.println(num);
    		}
    	}
    
    }
    
    

11. java中的堆

    • 方法
    • 局部变量
    • 对象
    • 成员变量
  • 方法区
    • 面向对象
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值