Java基础语法—方法
Java方法的创建与使用
什么是方法?
方法是完成特定功能的代码段,在类外定义好,并且可以在任意处引用。
-
一般来说,方法包含一个方法头和方法体。
- 修饰符: 访问权限修饰符,先默认为public static(可选的)
- 返回值类型: 用于限定方法返回值的数据类型(无返回值时值为void)
- 方法名:方法的名字 调用方法的时候需要根据方法名
- 方法体:包含具体的语句,定义该方法的功能
- 参数类型:类似占位符,调用方法时,传值给参数。
- 形式参数:在方法被调用时用于接收外界输入的数据。
- 实参:调用方法时实际传给方法的数据。
- 参数名:是一个变量,用于接收调用方法时传入的数据
- return关键字:用于结束方法以及返回方法指定类型的值
- 返回值:被return语句返回的值,该值会返回给调用者
调用方法:类名 方法名(参数);
public class m1 {
public static void main(String[] args) {
int z = add(2, 3); //调用使用方法,2,3为实际参数
System.out.println(z);
}
public static int add(int x, int y) { //定义一个返回值为int的方法,x,y为形式参数
return x * y;
}
}
方法的调用:
-
无
static的非静态调用:无法直接调用方法,要先生成一个新的对象再进行调用,在类实例化后才存在的。public static void main(String[] args) { Ex1 ex1 = new Ex1(); //生成一个新的对象 ex1.say(); //进行调用输出"hi!" } public static class Ex1 { public void say() { System.out.println("hi!"); } } -
static的静态调用:可直接调用方法,无需生成一个新的对象再调用,和类一起加载的。public static void main(String[] args) { Ex1.say(); //直接调用方法,输出"hi!" } public static class Ex1 { public static void say() { System.out.println("hi!"); } }
注意: 定义class中没有static,类里面的方法也无法使用static定义,两者要相一致。
- 值传递与引用传递:
//值传递:
public static void main(String[] args) {
int a = 1;
System.out.println(a); //1
m4DY1.add(a); //10
System.out.println(a); //1
}
public static void add(int a) {
a = 10;
}
//引用传递:
public static void main(String[] args) {
Ex e = new Ex();
System.out.println(e.name + " " + e.age); //null 0
change(e); //是对class(Ex)进行修改的
System.out.println(e.name + " " + e.age); //LIN 24
}
public static void change(Ex e) {
e.name = "LIN";
e.age = 24;
}
static class Ex {
String name;
int age;
}
方法重载:
重载是在同一个类中有相同的方法名,但是方法的参数类型和参数个数不一样的方法。
- 方法重载的注意点:
- 方法名字相同
- 方法的参数类型不同,参数个数不同
- 返回值是否相同无要求
public static void main(String[] args) {
int z = add(2, 3);
double x = add(2.5, 3.6);
int q = add(3, 4, 5);
System.out.println(z);
System.out.println(x);
System.out.println(q);
}
public static int add(int x, int y) {
return x * y;
}
public static int add(int x, int y, int z) {
return x + y +z;
}
public static double add(double x, double y) {
return x + y;
}
}
可变参数:
-
在方法中声明中,在指定参数类型后面加上一个省略号(...)
-
一个方法只能定义一个可变参数,但是必须是方法的最后一个参数。其他普通参数的定义必须在可变参数之前定义
public class m2 { public static void main(String[] args) { printMax(1, 3, 55, 5, 23); } public static void printMax(double ... i) { if (i.length == 0) { System.out.println("error!"); return; } double number = i[0]; for (int j = 1; j < i.length; j++) { if (i[j] > number) { number = i[j]; } } System.out.println(number); } }

浙公网安备 33010602011771号