不走心的努力,都是在敷衍自己
——24.2.19
一、方法参数
1.基本数据类型
整型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean
2.基本数据类型做方法参数传递
基本类型做方法参数传递,传递的是值,不是变量本身
方法运行:压栈
方法运行完毕:弹栈 -> 释放栈内存
方法里的参数和main函数中的参数即使同名但是不同,方法里的参数只在方法内奏效
传递参数传递的是参数代表的值,而不是参数变量本身
基本数据类型当作实参传递,传递的是值,不是变量本身
public static void main(String[] args) {int a = 10;int b = 20;method(a,b);System.out.println(a);//10System.out.println(b);//20}public static void method(int a,int b){a+=10;b+=20;System.out.println(a);//20System.out.println(b);//40}
3.引用数据类型
除了基本数据类型
其他都属于引用数据类型
4.引用数据类型做方法参数传递
引用数据类型做方法参数传递时,传递的是地址值,不是变量的值
public static void main(String[] args) {int[] arr = {10,20};method(arr);System.out.println(arr[0]);//20System.out.println(arr[1]);//40}public static void method(int[] arr){arr[0]+=10;arr[1]+=20;System.out.println(arr[0]);//20System.out.println(arr[1]);//40}
5.命令行参数(dos窗口和idea中的使用)
二、其他操作
1.快速生成方法
① 先调用,在定义方法,快捷键:alt+回车
② 快速将一段代码抽取到一个方法中:选中要抽取的方法,按crtl+alt+m
2.debug调试
① 概述:调试代码的一种手段
② 作用:能清楚的看到每个变量在代码执行过程中的变化,找错
③ 使用:在想要开始debug的那一行左边点击一下,出现红色小圆点(断点),右键,点击debug
不可以同时点击多个断点
三、面向对象 总结
static关键字:
①概述 —— 静态关键字
②使用 —— 修饰成员变量 修饰方法
③调用 —— 类名调用
④特点: a、static修饰的成员为静态成员,静态成员属于类成员,不属于对象成员
b、static修饰的成员会随着类的加载而加载,优先于对象存在
c、只是根据static所在的类创建出来的对象,都可以共享这个静态成员
⑤成员访问特点 —— a、静态方法中不能直接访问非静态成员 需要new对象访问
b、非静态方法中在同类中能直接访问静态成员,也可以类名调用,不在同类中只能类名调用
c、静态方法中在同类中能直接访问静态成员,也可以类名调用,不在同类中只能类名调用
d、非静态方法中在同类中能直接访问非静态成员,也可以new对象调用,不在同类中只能new对象调用
⑥总结 —— 不管在不在同一个类中,只要是访问静态的,都可以类名调用、
不管在不在同一个类中,只要是访问非静态的,都可以new对象调用
⑦使用场景 —— 抽取工具类使用:a、构造私有——不能new对象,相当于强制使用类名调用
b、成员都为static的——方便调用
可变参数:
① 概述 —— 可变的参数
② 作用 —— 可以接收0个或者多个参数
③ 格式 —— 数据类型…变量名
④ 本质 —— 数组
⑤ 注意 —— 参数位置只能有一个可变参数,而且要放到最后
递归:
①概述 —— 自己方法内部调用自己
②分类 —— a、直接递归 b、间接递归
③注意 —— a、要有出口 b、递归次数不要过多
数组常见算法:
① 冒泡排序:相邻两个元素之间比较,互相换位置,大的往后走,小的往前走
② 折半查找/二分查找:a、前提:数组元素有序 b、思想:每次都从中间索引开始找,找不到下一次干掉一半数据
对象数组:
存储的对象,取出来的也是对象
方法参数:
① 基本类型做方法参数传递 —— 传递的是值,不是变量本身
② 引用类型做方法参数传递 —— 传递的是地址值
方法快速生成和debug:
需要自己操作,熟能生巧