目录
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-内存图解之三个引用