方法
方法:解决事情的办法 | 定义功能的代码块
1.方法不调不执行
2.方法定义在类中方法外,方法不能嵌套
方法可以简化代码,提高代码的复用性
- 定义:
有返回值类型的方法
修饰符 返回值类型 方法名(参数列表){
具体功能的代码;
return 返回值;
}
2. 说明:
修饰符:访问权限修饰符 public static(默认,具体面向对象讲)
返回值类型: 方法运算后结果的数据类型 (基本数据类型|引用数据类型)
方法名:方法的名字. 调用方法必须使用方法名调用
标识符->遵循标识符的要求
参数列表:参数个数可以是0个,可以是多个
参数: 定义方法的时候,如果未知的数据|不确定的|可变的数据,定义在参数列表上
参数定义时,相当于一个局部变量的声明
作用域:当前所定义的方法中
数据类型 参数名,数据类型 参数名, …
{}:解决具体功能的代码
return:1)提前结束方法 2)带出返回值:返回值返回给方法的调用者
方法的调用:方法名(参数列表)
- 直接调用
- 赋值调用
- 输出调用
方法的参数
- 形参: 定义方法的时候,()中的参数,局部变量的申明
- 实参:调用方法的时候,()中的内容,局部变量的赋值
- 实参和形参要一一对应
没有形参,不能传实参
没有返回值类型的方法
修饰符 void 方法名 (参数列表){
方法体语句;
return;//可写可不写
}
void:标识没有返回值类型的方法
return:提前结束方法
调用方法:
直接调用:方法名(参数列表);
方法的重载
在同一个类中,多个方法,方法名相同,参数列表不同(方法签名不同)
- 参数列表不同:
1. 参数个数
2. 参数类型不同
3. 当类型不同的时候,顺序不同也叫参数列表不同
方法签名:方法名+参数列表
重载方法如何调用:
根据参数进行匹配不同的方法,只看调用时候的参数列表
方法中一个类中封装的一种体现
方法的重载就是一个类中多态的一种体现
方法的重载和修饰符有无关
方法的重载有没有返回值类型无关
方法的重载和返回值类型无关
方法的重载和参数的名字无关
方法的重载只和方法名和参数列表
方法的递归
方法的递归:
方法中自己调用自己
递归头: 停止自己调用自己的条件
递归体: 自己调用自己
临界条件: 停止自己调用自己的条件,递归头
递归前进段:还没有到临界条件之前自己调用自己的阶段
递归后退段:把结果返回给上一层
数组: []
相同类型数据的有序集合
数组特点:
- 数组是一个引用数据类型
- 数组是个容器,长度一旦确定不可改变
- 存储的所有数据类型要求一致
- 有序,下标|索引 从0开始
数组的声明:
数据类型[] 数组名; —推荐
数据类型 数组名[]; —不推荐
数据类型:基本|引用
规定存放的所有数据的数据类型
数组名:标识符
数组的初始化:
动态初始化: 先创建数组,但是不赋值,后续根据需求进行赋值
数据类型[] 数组名 = new 数据类型[长度];
存在默认值:
整数 0
小数 0.0
布尔: false
字符: ’ ’
引用数据类型:null
静态初始化:创建的同时就要赋值
数据类型[] 数组名 = new 数据类型[]{值1,值2,值3…};
数据类型[] 数组名 ={值1,值2,值3…}; 推荐: 编写简单
操作数组中的数据:
数组名[下标]
数组的长度: length
数组名.length
数组中的第一个数据的索引 0 ,最后一个数据的索引 数组名.length-1
数组的遍历:
以此拿出数组中的每一个数据
1.普通for循环
2.增强for循环|foreach
for( 数据类型 变量名: 数组名|容器名){
}
数据类型:数组中每一个数据的数据类型
变量名:变量代表数组中的每一个数据,从第一个开始拿