1.方法特点和方法调用
- 方法的注意事项:
- 方法不调用不执行;哪里调用,返回哪里;main方法例外,它是被虚拟机调用的
- 不同方法之间是平级关系,不能嵌套定义;不像循环可以随意嵌套:for可以嵌套while,嵌套do while,while可以嵌套for等等……
- 方法定义的时候,参数是用,隔开的
- 方法在调用的时候,不用再传递数据类型
- 如果方法有明确的返回值类型,就必须有return语句返回
-
方法的调用:
A:有明确返回值的方法 a:单独调用,没有意义 b:输出调用,不是很好,因为我可能需要不结果进行进一步的操作 c:赋值调用,推荐方案 B:void类型修饰的方法 a:单独调用 //void就只有这种调用
-
方法调用的图解:
注:我们可以在主方法中也把变量名定义为a和b,这里只是方便区分而定义为x和y.
在第三步调用方法中,一定不能把sum(x,y)写作sum(int x,int y).因为我们这里是调用sum方法,只需要把变量传给形参,而不是再定义一次.
- 案例:
- 获取三个数中的最大值:
2018-08-15MethodDemo1.
- 输出m行n列的星形:
2018-08-15MethodDemo2.
- 输出nn乘法表:
2018-08-15MethodDemo3.
2.方法重载
-
方法重载的由来:
jvm会根据不同参数去调用不同功能,如上图若是没有定义两个参数的sum方法,但仍想调用,也可以。jvm会找比它大的三个参数的sum方法去调用。但是我们不建议这么做.
-
方法重载的特点:
-
参数列表不同:
参数的个数不同;参数的对应的数据类型不同;
-
案例:
不同的类型的多个同名方法的比较:2018-08-15ReLoad.
public static void main(String[] args) {
long a = 10;
int b = 20; //即使第二个参数不是long,还是去找long为参数的方法执行
System.out.println(compare(a,b));
}
public static void compare(byte a,byte b) {
System.out.println("byte");
}
public static boolean compare(long a,long b) { //即使返回类型不同,仍是重载.
System.out.println("long");
return a == b;
}