Java重载之带有可变形参的方法

如果重载的方法中带有可变形参的方法时,需要注意

public class OverloadVarargsTest
{
	public void test(String msg)
	{
		System.out.println("只有一个字符串参数的test方法");
	}

	//带可变形参的重载方法
	public void test(String... books)
	{
		System.out.println("****形参可变test方法********");
	}
	public static void main(String[] args)
	{
		OverloadVarargs ov=new OverloadVarargs();

		ov.test();//执行第一个test方法
		ov.test("Java编程思想","Java核心技术卷");//执行第二个

		ov.test("nihao");//执行第一个test方法
		ov.test(new String[]{"aa","bb"});//执行第二个test方法
	}
}

  另外,不建议使用重载的可变参数方法,因为它能降低代码的可读性!!!

时间: 2024-08-03 10:41:56

Java重载之带有可变形参的方法的相关文章

Java 类的重载/匿名类的使用/可变形参

1 /** 2 *1.类的方法的重载 3 *2.匿名类对象的传递和引用 4 *3.可变个数的形参(格式:1/对于方法的形参: 数据类型...形参名 5 * 2/可变个数的形参与同名的方法之间构成重载 6 * 3/可变个数的形参在调用时,个数从0到很多很多 7 * 4/可变个数的优势,传入单个或数组 时都可以调用 8 * 5/一致于数组,数组怎么传递,可变形参就怎么用) 9 */ 10 import java.lang.*; 11 class Car{ 12 String name; 13 int

JAVA学习--可变个数的形参的方法

* 可变个数的形参的方法:  * 1.格式:对于方法的形参: 数据类型 ... 形参名  * 2.可变个数的形参的方法与同名的方法之间构成重载  * 3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以.  * 4.使用可变多个形参的方法与方法的形参使用数组是一致的.  * 5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后.  * 6.在一个方法中,最多声明一个可变个数的形参. public class TestArgs { public static void main(S

JDK新特性之可变个数的形参的方法

可变个数的形参的方法:1.格式:对于方法的形参来说:数据类型...形参名2.可变个数的形参的方法与同名的方法之间可以构成重载3.可变个数的形参在调用时,个数从0开始,到无穷都可以(在调用这个方法时,sayHello后的括号里输入几个值都可以,可以输入0个也可以无穷个)4.使用可变多个形参的方法与方法的形参使用数组是一致的甚至是一个方法,使用要不同的名称5.若方法中存在可变个数的形参,那么一定要声明在方法形参之后(如代码中的sayHello(int i,String... args)中的int是方

可变个数的形参的方法

可变个数的形参的方法: 1.格式:对于方法的形参: 数据类型 ... 形参名 2.可变个数的形参的方法与同名的方法之间构成重载 3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以. 4.使用可变多个形参的方法与方法的形参使用数组是一致的. 5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后. 6.在一个方法中,最多声明一个可变个数的形参. //如下四个方法构成重载 //在类中一旦定义了重载的可变个数的形参的方法以后,如下的两个方法可以省略 // public void say

JavaSE 可变参数的方法重载

1 /** 2 * 可变参数的方法重载 3 */ 4 class A { 5 public void test(int a, int b) { 6 System.out.println(a+", "+b); 7 } 8 9 public void test(int...params) { 10 for(int i=0; i<params.length; i++) { 11 if(i!=0) { 12 System.out.print(", "); 13 } 1

java Vamei快速教程03 构造器和方法重载

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization).初始化时,对象的数据成员被赋予初始值.我们可以显式初始化.如果我们没有给数据成员赋予初始值,数据成员会根据其类型采用默认初始值. 显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定

Java中的不可变类

本文与个人博客 zhiheng.me 同步发布,标题: Java中的不可变类. 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修改其内容. Java 中八个基本类型的包装类和 String 类都属于不可变类,而其他的大多数类都属于可变类. 与引用不可变的区别 需要特别注意的是,不可变类的不可变是指该类的实例不可变而非指向该实例的引用的不可变. String s = "ab

通过Java发射机制调用可变参数函数

1.获取可变参数的函数 获取可变参数的函数与获取参数类型为数组类型一样. clazz.getMethod("test", Object[].class); 其中Object为可变参数或者数组的数据类型 例如: public void test(String ... params){ ... } 则获取该可变参数的函数如下: Class clazz = Class.forName("com.demo003.MainThread"); Method method = c

Java基础---Java中带参数无返回值方法的使用(三十九)

Java 中带参无返回值方法的使用 有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息才行.例如,现实生活中电饭锅可以实现"煮饭"的功能,但前提是我们必须提供食材,如果我们什么都不提供,那就真是的"巧妇难为无米之炊"了.我们可以通过在方法中加入参数列表接收外部传入的数据信息,参数可以是任意的基本类型数据或引用类型数据. 我们先来看一个带参数,但没有返回值的方法: 上面的代码定义了一个 show 方法,带有一个参数 name