Java 方法,数组,面向对象
方法
1 知识点:静态方法
理解:特定功能的代码块
好处:解决代码的冗余
语法结构:
访问修饰符 static 返回值类型 方法名([参数列表]){
...代码块...
}
分类:
无参数无返回值的方法
带参数的方法
带返回值的方法
2 知识点:静态方法 – 无参数无返回值的方法
语法结构:
public static void 方法名(){
...代码块
}
注意:
1.public是访问修饰符的一种,表示公有的
2.void表示无返回值(关键字)
3.方法在类中声明
4.方法与方法之间是平级关系
5.方法没被调用,就是个摆设
3 知识点:静态方法 – 带参数的方法
语法结构:
public static void 方法名(参数列表){
...代码块...
}
注意:
1.形式参数/形参:声明方法时规定的参数
2.形参必须声明类型
3.形参属于该方法的变量,作用域就在该方法内,形参也是局部变量
4.局部变量:方法里声明的变量
5.实际参数/实参:调用方法时传入的数据
6.实参和形参的类型必须兼容
7.实参和形参可以有多个,用逗号分割
4 知识点:静态方法 – 带返回值的方法
语法结构:
public static 返回值类型 方法名([参数列表]){
...代码块...
return 数据;//1.结束当前方法 2.将数据返回给调用方
}
注意:
1.带返回值的方法有没有参数要看具体需求
2.声明方法时需要设置返回值类型
3.return后接的是需要返回的具体数据
4.方法功能单一性(一个方法的功能不要过于强大)
5.方法声明时规定的返回值类型 和 return后的数据 必须兼容
6.返回值只能有一个,如果想返回多个值就必须使用数组、集合、....
5 知识点:方法的重载
概念:方法之间的关系
条件:
1.在同一个类中
2.方法名必须一致
3.参数列表的个数或者类型不一致
4.与返回值无关
好处:系统会根据实参类型自动匹配到对应的方法中
应用场景:在同一个类中,多个方法功能大概一致,但是细节实现不一致,就可以考虑使用重载
6 知识点:方法的递归
含义:方法调用方法自身
注意:递归是一种程序设计的思想
经验:
1.找规律:什么情况下方法应该调用方法自身
2.找出口:什么情况下应该解决该方法
需求:设计一个方法,传入一个int值n,求n的阶乘
分析:
5! = 1*2*3*4*5 -> 5! = 4! * 5
4! = 1*2*3*4 -> 4! = 3! * 4
3! = 1*2*3 -> 3! = 2! * 3
2! = 1*2 -> 2! = 1! * 2
1! = 1 -> 1! = 1
找规律:n! = (n-1)! * n
找出口:1! = 1
4 知识点: Java的引用数据类型
数组
类
接口
枚举
知识点:一维数组
理解:一组数据的容器
声明:
数据类型[] 数组名;
数据类型 数组名[];
概念:
1.数组是引用数据类型
2.数组中的数据也叫做元素
3.元素都是编号也叫做下标/索引
4.下标从0开始
5.数组元素在内存中开辟的空间是连续的
6.数组一旦初始化成功,长度不可变(意味着数组不能添加和删除)
数组的初始化:
静态初始化:元素由程序员指定,长度由系统分配
动态初始化:长度由程序员指定,元素由系统分配
5 知识点:一维数组
理解:一组数据的容器
声明:
数据类型[] 数组名;
数据类型 数组名[];
概念:
1.数组是引用数据类型
2.数组中的数据也叫做元素
3.元素都是编号也叫做下标/索引
4.下标从0开始
5.数组元素在内存中开辟的空间是连续的
6.数组一旦初始化成功,长度不可变(意味着数组不能添加和删除)
数组的初始化:
静态初始化:元素由程序员指定,长度由系统分配
动态初始化:长度由程序员指定,元素由系统分配
整数类型默认值:0
浮点类型默认值:0.0
字符类型默认值:’ ’
布尔类型默认值:false
引用类型默认值:null(空)
一维数组的案例
创建一个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);
/**
小结:
初始化时只知道元素,就使用静态初始化
初始化时只知道长度,就使用动态初始化
int类型的数组为引用数据类型,数组中的元素是基本数据类型
*/