方法的定义和重载

方法的定义
方法用于 定义类的某种行为(或功能),其语法结构如下:
访问控制符  [修饰符]  返回值类型 方法名 ( [参数] )  {
            //方法体
}大括号为 语句块
如下代码所示:
public void sayHello(){
	System.out.println("Hello");
}

protected final void show(int x){
		System.out.println(x);
}
	
private static int add(int x, int y){
	return x+y;
}
访问控制符: 方法中的访问控制符用于限制方法在其他类中的使用范围
访问控制符分为四种:public、protected、友好的和private。

修饰符:
static修饰符用于限制方法的调用方式:
 1、static修饰的方法可以直接使用类名调用也可以使用类创建的对象调用;

 2,非static修饰的方法只能使用类创建的对象调用
其它常用方法修饰符有final和synchronized
返回值类型:

如果方法没有返回值,需要用void表示。
方法返回基本数据类型的数据,则返回值类型必须是返回 数据所属的数据类型或者精度更高的数据类型(针对于数值类型的数据)。
方法返回引用数据类型的数据,则返回值类型必须是返回数据所属的数据类型或者其父类。

方法如果有返回值,则必须借助 return关键字将数据返回;

方法名:
遵循标识符命名规则;首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写;方法名一般由一个动词或者动名词构成。

参数:

方法可以有多个参数,各个参数之间用逗号(,)间隔。
方法的参数在整个方法内有效。
方法参数前面的数据类型用于限制调用方法时所传具体数据的数据类型

动态参数:

public class Test {

	public static void print(int... numbers) {
		for (int number : numbers) {
			System.out.println(number);
		}
	}

	public static void main(String[] args) {
		print(1, 2, 3, 4, 5);
	}
}

运行结果:
1
2
3
4
5


注意
      1、动态参数实质为数组;
      2、动态参数必须位于参数列表的最后;
      3、一个方法只能有一个动态参数;

方法的重载:

同一个类中有多个方法名相同但参数列表不同的方法,这种现象称为方法重载(overload)。其中参数列表不同包括以下情形:
   1、参数的个数不同
   2、参数的对应类型不同
注意
   1、参数列表不同并不包含参数名不同,也就是说如果方法名相同,方法中参数个数和类型相同,只是参数名不同,这样也不能称之为方法重载。
    2、方法中其它构成部分不参与比较:访问控制符、修饰符、返回值类型。

public class Teacher {

	public static void print(int age, String name) {
		System.out.println(age + "," + name);
	}

	public static void print(String name, int age) {
		System.out.println(name + "," + age);
	}

	public static void main(String[] args) {
		print(33, “王小红”);            // 依次传入int类型和String类型数据,所以调用第一个方法
		print("王小红", 33);            //依次传入String类型和int类型数据,所以调用第二个方法
	}
}

运行结果:
33,王小红
王小红,33

一个类中有多个同名方法(构造方法或普通方法),在调用这些方法时,到底调用哪个方法取决于调用方法时传入的参数的数据类型和个数。

猜你喜欢

转载自blog.csdn.net/qq_40831381/article/details/80229677