Java基础入门(五)
1 方法的定义和调用
1.1方法的概念和特点
方法(method)是做某件事的固定流程,在程序中是将具有独立功能的代码块组织成一个整体,使其成为具有特殊功能的代码集,当其他的代码需要这段功能时,可以通过这个代码块的“名字”来调用这段代码。
方法的特点:
- 流程相对固定;
- 可以反复使用;
方法可以代码的复用性。
1.2 方法的定义和调用
1.2.1 定义格式:固定的格式
修饰符 返回值类型 方法名(参数列表){
方法体;
return 返回值;
}
方法定义格式的解释说明:
修饰符:固定写法 public static
返回值类型:和返回值的数据类型要保持一致
1.可以使用任意的数据类型(基本数据类型:4类8种,引用数据类型:数组 int[],double[],String)
2.使用void,说明这个方法没有返回值
方法名:使用标识符给方法起一个名字(小驼峰式:第二个单词首字母大写),调用方法的时候需要使用,如print,getMax,getSum
参数列表
1.可以使用任意类型的变量(基本数据类型:4类8种,引用数据类型:数组(int[],double[],String)
2.什么都不写(),没有参数
方法体:完成方法功能的实际代码
return:
1.结束方法
2.如果方法的返回值类型不为void,需要把返回值返回到方法的调用处
1.2.2 方法的调用格式
方法名();
调用打印数字的方法
printNum();
定义打印数字的方法
public static void printNum(){
int a = 10;
System.out.println(a);
}
方法名(传递参数);
调用遍历数组的方法
int[] arr = {1,2,3}
printArr(arr)
定义遍历数组的方法
public static void printArr(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
注意:
- 1.所有的方法都是并列的,不能把一个方法定义在其他方法的内部(类中也需要定义在其他方法外部)
- 2.方法的定义的先后顺序无所谓,先调用哪个方法,哪个方法就先执行
- 3.刚开始学习时最好从main方法调用其他方法
1.2.3 方法的参数
前面的内容定义的方法相对比较固定,只能打印固定的信息以及固定的次数;可以让外部“接收数据”,来提高方法的复用性,而这些外部传入的数据被称为参数。
参数分为形式参数和实参两种:
- 形参:定义方法时的数据
- 实参:方法调用时实际传递的数据
这里的张三就是实参
printStudent("张三");
这里String后面的name就是形参
public static void printStudent(String name){
System.out.println("姓名:"+name);
}
方法的参数可以是基本数据类型(4类8种),也可以是引用数据类型(数组等),当方法的参数是数组时,传递的是数组的在堆中的地址值。
方法的参数是数组的内存图:
1.2.4 方法的返回值
当我们想要通过方法返回我们的值时,就要使用方法的返回值。
方法的定义的时候,要明确:
- 方法名
- 参数列表
- 返回值类型
方法执行的流程图:
1.2.5 方法的几种调用形式
一般我们现在都是在main方法中调用其他方法,固定的格式: 方法名(参数);
1.直接调用:适用于没有返回值的方法,方法的返回值类型是void
方法名(参数);
2.输出调用:适用于方法有返回值,并且返回值只使用一次
System.out.println(方法名(参数));
3.赋值调用:适用于方法有返回值,而且返回值多次使用
方法的返回值类型 变量名 = 方法名(参数);
System.out.println(变量名);
2 方法的重载
方法重载:在同一个类中,出现了方法名相同,但是参数列表不同的方法,叫方法重载。
2.1 方法重载的基本使用
方法重载用于定义参数数据类型不同,但方法的代码相同,完成的功能一致的情况,所以这些方法的方法名相同,只有参数列表不同(对应的返回值也不同)。
参数列表不同:
- 参数个数不同
调用两个int整数求和的方法
int s1 = getSum(10, 20);
调用三个int整数求和的方法
int s2 = getSum(1, 2, 3);
- 参数类型不同
调用两个int整数求和的方法
int s1 = getSum(10, 20);
调用两个double浮点数求和的方法
double s2 = getSum(5.5, 6.6);
- 参数类型顺序不同
调用先int后double变量求和的方法
double s4 = getSum(10, 5.5);
调用先double后int变量求和的方法
double s5 = getSum(5.5, 100);
2.2 方法重载的注意事项
- 方法的重载,只和参数类型有关,和方法的返回值类型没有关系
- 方法的重载,只和参数类型有关,和方法参数的名字没有关系
- JVM(java虚拟机)会根据方法传递的参数不同,而调用不同的方法
3 基本数据类型和引用数据类型的简单介绍
3.1 基本类型执行参数执行原理
基本类型执行参数执行原理的原理是值传递,方法中把值改变,不影响原来的值。
注意:不通过参数传递的值在方法中重新赋值,原来的值会被覆盖。
3.2 引用类型执行参数执行原理
引用类型执行参数执行原理是地址值传递,当多个引用变量执行同一个堆内存中的地址值,一个引用变量修改了对象的内容,所有变量访问的内容都会改变。