Java基础视频笔记--02方法重载
方法重载
-
为什么要有方法重载机制?
public class OverloadTest01{ //主方法 public static void main(String[] args){ int x = sumInt(10, 20); System.out.println(x); long y = sumLong(10L, 20L); System.out.println(y); double z = sumDouble(10.0, 20.0); System.out.println(z); } // 定义一个计算int类型数据的求和方法 public static int sumInt(int a, int b){ return a + b; } // 定义一个计算long类型数据的求和方法 public static long sumLong(long a, long b){ return a + b; } // 定义一个计算double类型数据的求和方法 public static double sumDouble(double a, double b){ return a + b; } }-
该程序没有使用方法重载机制,分析代码风格的缺点:
-
三个方法功能不同,但是相似,分别起了三个不同的名字,有什么缺点?
-
代码不美观(不好看、不整齐)。【这是次要的】
-
程序员需要记忆更多的方法名称,程序员比较累。
-
-
-
使用方法重载机制后的代码:
public class OverloadTest02{ public static void main(String[] args){ // 对于程序员来说,只需要记忆一个方法名即可。 System.out.println(sum(10, 20)); System.out.println(sum(10L, 20L)); System.out.println(sum(10.0, 20.0)); } // 定义一个计算int类型数据的求和方法 public static int sum(int a, int b){ System.out.println("int求和"); return a + b; } // 定义一个计算long类型数据的求和方法 public static long sum(long a, long b){ System.out.println("long求和"); return a + b; } // 定义一个计算double类型数据的求和方法 public static double sum(double a, double b){ System.out.println("double求和"); return a + b; } }- 代码整齐美观。
- “功能相似”的,可以让“方法名相同”,更易于以后的代码编写。
-
在java语言中,是怎么进行方法区分的呢?首先java编译器会通过方法名进行区分。但是在java语言中允许方法名相同的情况出现。如果方法名相同的情况下,编译器会通过方法的参数类型进行方法的区分。
-
什么时候需要考虑方法重载?
- 在同一个类当中,如果“功能1”和“功能2”它们的功能是相似的,那么可以考虑将它们的方法名一致,这样代码既美观,又便于后期的代码编写(容易记忆,方便使用)。
- 注意:方法重载overload不能随便使用,如果两个功能压根不相干,不相似,根本没关系,此时两个方法使用重载机制的话,会导致编码更麻烦。无法进行方法功能的区分。
-
什么时候代码会发生重载?(重载的条件)
-
条件1:在同一个类当中
-
条件2:方法名相同
-
条件3:参数列表不同
1. 参数的个数不同算不同 `public static void m1()`与`public static void m1(int a)`:参数的个数不同发生了重载。 2. 参数的顺序不同算不同`public static void m2(int x, double y)`与`public static void m2(double x, int y)`:参数的顺序不同发生了重载。 3. 参数的类型不同算不同`public static void m3(int a)`与`public static void m3(double b)`:发生了重载 -
注意:
- 方法重载和方法的“返回值类型”无关。
- 方法重载和方法的“修饰符列表”无关。
-
-
常用的方法重载println();
System.out.println(10); System.out.println(3.14); System.out.println(true); System.out.println('a'); System.out.println("abc"); System.out.println(100L); System.out.println(3.0F);println是一个方法名,👉SUN的Java团队负责编写的,在Java的源代码中。对于println()方法来说,我们只需要记忆这一个方法名就行,参数类型可以随便传。这说明println()方法重载了。

浙公网安备 33010602011771号