一、方法的定义
1、方法的格式详解
修饰符 返回值类型 方法名(参数列表){ //代码省略... return 结果; }
- 修饰符: public,private。
- 返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者。
- 参数列表: 方法在运算过程中的未知数据,调用者调用方法时传递。
- 返回值: 将方法执行后的结果带给调用者,方法执行到
return
,整体方法运行结束。
2、定义方法的注意事项
- 定义位置,类中方法外面。
- 返回值类型,必须要和
return
语句返回的类型相同,否则编译失败 。
// 返回值类型要求是int public static int getSum() { return 5;// 正确,int类型 return 1.2;// 错误,类型不匹配 return true;// 错误,类型不匹配 }
- 不能在
return
后面写代码,return
意味着方法结束,所有后面的代码永远不会执行,属于无效代码。
public static int getSum(int a,int b) { return a + b; System.out.println("Hello");// 错误,return已经结束,这里不会执行,无效代码 }
二、方法重载
1、定义
- 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
- 参数列表(不同): 个数不同,数据类型不同,顺序不同。
- 重载方法调用: JVM通过方法的参数列表,调用不同的方法。
重载规则:
- 被重载的方法必须形参列表不一样(参数个数或类型不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 返回值类型不能作为重载函数的区分标准。
最常用的地方就是构造器的重载。(有参和无参构造的重载)
2、例子
main测试
public static void main(String[] args) { //定义不同数据类型的变量 byte a = 10; byte b = 20; short c = 10; short d = 20; // 调用 System.out.println(compare(a, b)); System.out.println(compare(c, d)); }
重载类
// 两个byte类型的 public static boolean compare(byte a, byte b) { System.out.println("byte"); return a == b; } // 两个short类型的 public static boolean compare(short a, short b) { System.out.println("short"); return a == b; }