方法的组成
修饰词+返回值类型+方法名+(方法参数)
修饰词有public、private、static等
返回值类型有int、String等
方法名按照驼峰命名法来命名
若返回值类型不为void,方法需要有return
方法的参数
实参和形参
实参:实际调用传递给方法的参数
形参:用来定义的参数
public static void main(String[] args) {
//实参 实际调用传递给方法的参数
//这里的1和2是实际传给方法的值
int sum = add(1, 2);
System.out.println(sum);
}
// add
// 形参 用来定义的参数
// 这里的a和b用来接受传过来的参数值
public static int add(int a, int b){
return a + b;
}
可变参数(不定项参数)
当方法不确定需要传进来几个值的时候,使用可变参数
可变参数的定义:数据类型… 变量名
如:int… arrays
public static void printMax(double... numbers) {
if (numbers.length == 0) {
System.out.println("No argument passed");
return;
}
double result = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > result) {
result = numbers[i];
}
}
System.out.println("The max value is " + result);
}
可以看出,可变参数numbers是一个数组类型的变量,它可以像数组一样遍历
方法重载
public static int add(int num1, int num2){
return 0;
}
public static int add(int num1, int num2, int num3){
return 0;
}
public static int add(double num1, double num2){
return 0;
}
方法重载的规则
1. 方法名称必须相同
2. 参数列表必须不同(个数不同、类型不同、参数排列顺序不同)
3. 返回类型可以相同也可以不同
4. 仅返回类型不同不足以成为方法的重载
值传递
实参传给形参的是值 形参和实参在内存上是两个独立的变量 对形参做任何修改不会影响实参
public static void main(String[] args) {
int a = 1;
System.out.println(a);//1
change(a);
System.out.println(a);//1
}
// 返回值为空
public static void change(int a) {
a = 10;
}
Java是值传递的
静态方法和非静态方法
// 静态方法 static 类名.方法名()
Student.say(); // 说话了
// 非静态方法 需要new出一个对象 对象.方法名()
new Student().eat(); // 吃东西
静态方法不可以调用非静态方法 非静态方法可以调用静态方法
public static void a() {
// b();
}
// 类实例化后存在
public void b() {
a();
}
静态方法是和类一起加载的,而非静态方法是类实例化后存在的