一、方法
也叫函数,是一个功能的定义,是一个类中最基本的功能单元
二、方法的格式
修饰符 返回值类型 方法名(参数列表){
//需要执行的功能语句
return 返回值;
}
修饰符:暂时使用 public static
返回值类型:说明方法运行后有结果,那个结果的数据类型
参数列表:就是局部变量,可以有0个或多个,每个参数之间以 “,” 隔开
**return:用于结束当前方法
返回值:方法运行结束后,那个结果具体的值
三、方法的注意
1、“返回值类型”与“返回值”的数据类型需要保持一致!
2、通过 方法名+参数列表的方式调用方法,调用方法的方法名和参数列表(参数的个数、参数的类型)必须与声明时相同
3、若声明了“返回值类型”说明该方法运行后,有结果,若调用者需要用到该结果,可以声明变量接收
4、若方法运行后不需要返回结果给调用者,则“返回值类型”处声明为:void
void:无返回值
5、方法中不能声明方法,可以调用其他方法
四、声明方法前的两点明确
1、是否需要返回结果给调用者(调用者是否需要用结果参与其他运算)
明确是否需要返回值,返回值类型是什么
2、是否有未知的数据参与运算
明确是否需要参数,需要几个,参数的数据类型
public class MethodTest{
public static void main(String[] args){
//需求:计算一个数 * 2 + 1 的结果
/*int num = 5;
int res = num * 2 + 1;
num = 7;
res = num * 2 + 1;*/
//调用已经声明方法
int res = result(10);//10 实际参数:用于传递给方法形式参数的具体值
print99();
print99();
}
//声明一个方法
public static int result(int a){//形式参数:用于接收调用者传递的实际参数值
return a * 2 + 1;
}
//打印 99 乘法表
public static void print99(){
}
//需求:计算两个数的和
public static int add(int a, int b){
return a + b;
}
}
五、跨类调用方法
通过 类名.方法名 的方式进行跨类调用方法(暂时使用 static 修饰的方法为例)
六、参数的值传递:基本数据类型
基本数据类型
当将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变
class MethodTest{
public static void main(String[] args){
int a = 10;
int b = 20;
add(a, b);
System.out.println("a=" + a + " b=" + b);//a=10 b=20
}
//需求:改变两个数的值
public static void add(int a, int b){//方法运行时,参数一定有值
a += 1;
b += 2;
}
}
针对于方法内变量的赋值举例:
System.out.println("***********基本数据类型:****************");
int m = 10;
int n = m;
System.out.println("m = " + m + ", n = " + n);
n = 20;
System.out.println("m = " + m + ", n = " + n);
System.out.println("***********引用数据类型:****************");
Order o1 = new Order();
o1.orderId = 1001;
Order o2 = o1;//赋值以后,o1和o2的地址值相同,都指向了堆空间中同一个对象实体。
System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
o2.orderId = 1002;
System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);
规则:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
2.针对于方法的参数概念
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
3.java中参数传递机制:值传递
规则:
- 如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
- 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。
推广:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
七、方法重载(Overload)
在同一个类中
①方法名相同
②参数列表不同(参数的个数、参数的类型)
注意:与返回值类型无关
public static void show(int a, char c){}
public static void show(char c, int a){}
public static int show(int a, char c, double d){}