一 方法
方法:具有某些功能的代码块
1.方法的作用:
封装内部的实现细节,提高代码的复用性
2.方法的注意事项:
(1)方法要定义在类中,方法外,方法不能嵌套
(2)方法不调用不执行
3.语法:
(1)方法体的组成
修饰符 返回值类型 方法名([参数列表]){
方法体语句;
return 返回值;
}
a.修饰符
访问权限修饰符,能访问的范围,现在默认public static
b.返回值类型
方法运算完成后,结果的数据类型,与return后面的返回值类型对应
基本数据类型|引用数据类型
c.方法名
调用方法的时候需要使用方法名调用
遵循标识符的命名规则|规范 第一个单词小写,第二个单词开始每个单词首字母大写
d.()->参数列表
可有可无的参数列表
参数列表中可以有多个参数
在方法执行过程中,有没有未知的数据,如果有,定义在参数列表中
参数列表:数据类型 变量名,数据类型 变量名 ....
参数:相当于一个局部变量的声明
e.{}->
具体功能的代码块
f.return
提前结束方法 ,带出返回值
如果是一个有返回值类型的方法,必须存在return,return后面必须带有返回值
(2)有返回值类型的方法
(3)没有返回值类型的方法
修饰符 void 方法名([参数列表]){
方法体语句;
return;
}
void:没有返回值的意思
return:提前结束方法
(4)方法的调用
执行方法中的代码 方法名([参数列表]);
1.赋值调用
数据类型 变量名 = 方法名(参数列表);
2.输出调用
System.out.println(方法名(参数列表));
3.直接调用
方法名([参数列表]);
(5)有返回值类型的方法
(6)参数:
形式参数:定义方法时候()中的参数
实际参数:调用方法的时候()中的参数值
形参和实参之间要一一对应(数据类型 顺序 个数)
有形参就必须有实参
形参的数据类型大于或等于实参的数据类型
二 return
1.作用
return使用在有返回值类型的方法中:--必须存在return
带出返回值
结束方法
使用在没有返回值类型的方法中:结束方法 --可以存在可以不存在
return后面的代码不会执行
2.不可达语句
永远无法访问的语句
一定会遇到不可达语句的几种情况:
1.return后面
2.死循环后面
3.一定会执行的break后面
4.一定会执行的continue后面
5.while(false)中的语句
在一个方法中连续出现的return只能有一个
兼容类型
形参的数据类型>=实参的数据类型
接受类型>=返回值类型>=return后返回数据的类型
三 方法的重载Overload重写
1.方法签名
在同一个类中,多个方法有相同的方法名字,不同的参数列表(方法签名不同 :方法签名是方法的唯一标识 方法签名=方法名+参数列表)
2.方法重载的要求:
同一类中
多个方法相同的方法名
不同的参数列表
参数数据类型不同
参数的个数不同
参数的顺序不同(不同数据类型的顺序不同)
方法的重载和参数的名字无关
方法的重载和有没有返回值无关
方法的重载和返回值类型无关
方法的重载和修饰符无关
方法重载只和方法名还有参数列表相关
重载方法的调用只和方法调用时候的实参决定
方法是一个类中封装的一种体现
方法的重载就是一个类中多态的一种体现
四 方法递归
递归:自己调用自己
递归头:停止自己调用自己条件
递归体:自己调用自己
临界条件:递归头
递归前进段:没有满足临界条件时,自己调用自己
递归后退段:满足临界条件以后,把结果返回给上一层
五 数组
相同数据类型的有序集合
变量:存储单个数据
数组:存储多个数据
基本数据类型和引用数据类型都可以放
1.数组的特点:
1.数组是引用数据类型
2.数组是一个集合,长度一旦确定不可改变
3.数组中数据的数据类型相同
4.数组是有序的 索引:从0开始,不会重复
2.数组的定义:
(1)数组的声明:
数据类型 数组名[];
数据类型[] 数组名; --推荐
(2)数组的动态初始化:
创建数组并指定长度
数据类型[] 数组名 = new 数据类型[长度];
(3)数组中的数据没有赋值存在默认值
整数 0
小数 0.0
boolean false
字符串 null
char ' '空格字符
(4)数组的静态初始化
(根据值确定数组的长度,一旦确定无法改变)
数据类型[] 数组名 =new 数据类型[]{值1,值2,值3...};
数据类型[] 数组名 ={值1,值2,值3...}; //推荐使用
3.数组的使用:
(1)根据索引操作数组:
获取值|赋值
数组名[索引]
数组中的索引从0开始,不会重复
根据索引操作数组效率高
(2)长度length属性
数组名.length
数组中最后一个数据的索引: 数组名[数组名.length-1]
4.数组的遍历:
(1)普通for循环
遍历的是索引,根据索引在数组中获取数据
(2)增强for循环,for..each
for(数据类型 变量名:数组名字){
变量就是数组中的每一个数据
}