Day06
一,静态方法
1.理解
特定功能的代码块
2.好处
解决代码的冗余
3.语法结构
访问修饰符 static 返回值类型 方法名([参数列表]){
…代码块…
}
4.分类
无参数无返回值的方法
带参数的方法
带返回值的方法
二,静态方法 – 无参数无返回值的方法
1.语法结构
public static void 方法名(){
…代码块
}
2.注意
1.public是访问修饰符的一种,表示公有的
2.void表示无返回值(关键字)
3.方法在类中声明
4.方法与方法之间是平级关系
5.方法没被调用,就是个摆设
三,静态方法 – 带参数的方法
1.语法结构
public static void 方法名(参数列表){
…代码块…
}
2.注意
1.形式参数/形参:声明方法时规定的参数
2.形参必须声明类型
3.形参属于该方法的变量,作用域就在该方法内,形参也是局部变量
4.局部变量:方法里声明的变量
5.实际参数/实参:调用方法时传入的数据
6.实参和形参的类型必须兼容
7.实参和形参可以有多个,用逗号分割
四,静态方法 – 带返回值的方法
1.语法结构
public static 返回值类型 方法名([参数列表]){
…代码块…
return 数据;//1.结束当前方法 2.将数据返回给调用方
}
2.注意
1.带返回值的方法有没有参数要看具体需求
2.声明方法时需要设置返回值类型
3.return后接的是需要返回的具体数据
4.方法功能单一性(一个方法的功能不要过于强大)
5.方法声明时规定的返回值类型 和 return后的数据 必须兼容
6.返回值只能有一个,如果想返回多个值就必须使用数组、集合、…
五,方法的重载
1.理解
方法之间的关系
2.条件
1.在同一个类中
2.方法名必须一致
3.参数列表的个数或者类型不一致
4.与返回值无关
3.好处
系统会根据实参类型自动匹配到对应的方法中
4.应用场景
在同一个类中,多个方法功能大概一致,但是细节实现不一致,就可以考虑使用重载
六,方法的递归
1.理解
方法调用方法自身
2.注意
递归是一种程序设计的思想
3.经验
1.找规律:什么情况下方法应该调用方法自身
2.找出口:什么情况下应该解决该方法
七,方法版万年历
八,Java的引用数据类型
数组
类
接口
枚举
九,一维数组
1.理解
一组数据的容器
2.声明
数据类型[] 数组名;
数据类型 数组名[];
3.概念
1.数组是引用数据类型
2.数组中的数据也叫做元素
3.元素都是编号也叫做下标/索引
4.下标从0开始
5.数组元素在内存中开辟的空间是连续的
6.数组一旦初始化成功,长度不可变(意味着数组不能添加和删除)
4.数组的初始化
静态初始化:元素由程序员指定,长度由系统分配
动态初始化:长度由程序员指定,元素由系统分配
整数类型默认值:0
浮点类型默认值:0.0
字符类型默认值:’ ’
布尔类型默认值:false
引用类型默认值:null(空)
十,一维数组的案例
1.案例
创建一个int类型的数组,长度由用户指定,数据由用户输入,输入完毕后获取最大值并输出
public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("请输入数组长度:"); int len = scan.nextInt(); int[] arr = new int[len]; for(int i = 0;i<arr.length;i++){ System.out.println("请输入第" + (i+1) + "个元素:"); int num = scan.nextInt(); arr[i] = num; } //假设下标为0的位置上的元素为最大值 int max = arr[0]; for(int i = 1;i<arr.length;i++){ if(max < arr[i]){ max = arr[i]; } } System.out.println("最大值为:" + max); }
2.小结
初始化时只知道元素,就使用静态初始化
初始化时只知道长度,就使用动态初始化
int类型的数组为引用数据类型,数组中的元素是基本数据类型