Java基础视频笔记--02方法重载

方法重载

  1. 为什么要有方法重载机制?

    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;
    	}
    }
    
    • 该程序没有使用方法重载机制,分析代码风格的缺点:

    • 三个方法功能不同,但是相似,分别起了三个不同的名字,有什么缺点?

      1. 代码不美观(不好看、不整齐)。【这是次要的】

      2. 程序员需要记忆更多的方法名称,程序员比较累。

  2. 使用方法重载机制后的代码:

    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;
    	}
    }
    
    • 代码整齐美观。
    • “功能相似”的,可以让“方法名相同”,更易于以后的代码编写。
  3. 在java语言中,是怎么进行方法区分的呢?首先java编译器会通过方法名进行区分。但是在java语言中允许方法名相同的情况出现。如果方法名相同的情况下,编译器会通过方法的参数类型进行方法的区分。

  4. 什么时候需要考虑方法重载?

    • 在同一个类当中,如果“功能1”和“功能2”它们的功能是相似的,那么可以考虑将它们的方法名一致,这样代码既美观,又便于后期的代码编写(容易记忆,方便使用)。
    • 注意:方法重载overload不能随便使用,如果两个功能压根不相干,不相似,根本没关系,此时两个方法使用重载机制的话,会导致编码更麻烦。无法进行方法功能的区分。
  5. 什么时候代码会发生重载?(重载的条件)

    • 条件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)`:发生了重载		
      
    • 注意:

      1. 方法重载和方法的“返回值类型”无关。
      2. 方法重载和方法的“修饰符列表”无关。
  6. 常用的方法重载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()方法重载了。

posted @ 2021-03-10 21:59  LightSunshine21  阅读(46)  评论(0)    收藏  举报