zoukankan      html  css  js  c++  java
  • Java中的方法重载应用

    一 方法重载介绍
    如果一个类中包含了两个或两个以个以上的方法名相同,但形参列表不同,则称为方法重载。

    二 方法重载应用
    1 代码示例

    public class Overload
    {
    	// 下面定义了两个test()方法,但方法的形参列表不同
    	// 系统可以区分这两个方法,这种被称为方法重载
    	public void test()
    	{
    		System.out.println("无参数");
    	}
    	public void test(String msg)
    	{
    		System.out.println("重载的test方法 " + msg);
    	}
    	public static void main(String[] args)
    	{
    		Overload ol = new Overload();
    		// 调用test()时没有传入参数,因此系统调用上面没有参数的test()方法。
    		ol.test();
    		// 调用test()时传入了一个字符串参数,
    		// 因此系统调用上面带一个字符串参数的test()方法。
    		ol.test("hello");
    	}
    }

    2 运行结果
    无参数
    重载的test方法 hello
    3 结果分析
    虽然两个test的方法名相同,但因为他们的形参列表不同,所以系统可以正常区分这两个方法。
     
    三 重载方法里包含个数可变的形参
    1代码示例

    public class OverloadVarargs
    {
    	public void test(String msg)
    	{
    		System.out.println("只有一个字符串参数的test方法 ");
    	}
    	// 因为前面已经有了一个test()方法,test()方法里有一个字符串参数。
    	// 此处的长度可变形参里不包含一个字符串参数的形式
    	public void test(String... books)
    	{
    		System.out.println("****形参长度可变的test方法****");
    	}
    	public static void main(String[] args)
    	{
    		OverloadVarargs olv = new OverloadVarargs();
    		// 下面两次调用将执行第二个test()方法
    		olv.test();
    		olv.test("aa" , "bb");
    		// 下面将执行第一个test()方法
    		olv.test("aa");  //a
    		// 下面调用将执行第二个test()方法
    		olv.test(new String[]{"aa"});   //b
    	}
    }

     2运行结果
    ****形参长度可变的test方法****
    ****形参长度可变的test方法****
    只有一个字符串参数的test方法
    ****形参长度可变的test方法****

    当注释掉第1个test方法,运行结果如下:
    ****形参长度可变的test方法****
    ****形参长度可变的test方法****
    ****形参长度可变的test方法****
    ****形参长度可变的test方法****
    3结果分析
    当调用a处代码时,系统会执行重载的test(String)方法,如果需要调用test(String... books)方法,又只想传入一个字符串参数,则可釆用b处代码重栽;而如果将第1个test方法注释掉,所有的test调用都重载第2个test方法。基于以上分析,大部分时候并不推荐重载个数可变的方法,它容易降低程序的可读性。

  • 相关阅读:
    编程命名规范
    python 字符串编解码介绍
    django之sqlite3常见错误
    asp.net请求过程文章推荐
    python 多线程的文章
    工作中处理文本的python代码片段
    memcached一些知识
    咱计算机专业的人,能不能不那么特别地彰显对语文的无知?——再谈面向对象...
    你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们...
    混蛋的面试题——《大话设计模式》读后感
  • 原文地址:https://www.cnblogs.com/ainima/p/6331660.html
Copyright © 2011-2022 走看看