阿里云服务器 个人网站,做个网站怎样做的,邯郸住房和城乡建设局网站,建设历史文化旅游宣传网站1. 形参个数可变的方法
Java允许方法指定数量不确定的形参。如果在定义方法是#xff0c;在最后一个形参的类型后加...#xff0c;则表明该形参可以接受多个参数值。多个参数值作为数组传入#xff1a;
public class Varargs
{public static void test(int a, String... b…1. 形参个数可变的方法
Java允许方法指定数量不确定的形参。如果在定义方法是在最后一个形参的类型后加...则表明该形参可以接受多个参数值。多个参数值作为数组传入
public class Varargs
{public static void test(int a, String... books){// books是个数组for (var tmp : books){System.out.println(tmp);}}public static void main(String[] args){test(5, 数学, 语文, 英语);}
}个数可变的形参实际上就是一个数组参数也就是说以下两种定义是等价的
public static void test(int a, String... books); // 个数可变的形参
public static void test(int a, String[] books); // 数组类型的形参但是在调用的时候有区别
个数可变的形参可以直接传入多个相同类型的参数
test(5, 语文, 数学, 英语);而数组形参不能传入未初始化的数组
// 首先初始化数组
var books new String[]{语文, 数学, 英语};
test(5, books);// 或者用动态初始化
test(5, new String[]{语文, 数学, 英语});还要注意Java里个数可变的形参必须是最后一个且只有这一个可变个数的形参。
2. 方法重载
Java中确定一个方法需要三个要素
方法的所属类还是对象方法名形参列表
Java中对方法重载的要求和C不一样明确是“二同一不同”同一个类中、方法名相同但是形参列表不同。 Java中方法重载的定义比C狭窄。 方法的其他部分比如返回值、修饰符和重载没有关系
比如
// 方法重载
public void test();
public void test(String msg);// 不认为是方法重载
public static void test();
public void test();
public int test();没用的知识炫技用的 当一个参数的方法和形参个数可变的方法重载时形参个数可变的方法不会接受传入一个参数。或者说传入一个参数的话会默认调用一个参数的方法 public void test(String msg);
public void test(String... msg);test(); // 0个参数调用形参个数可变的方法
test(aa); // 1个参数调用第一个方法
test(aa,bb); // 2个参数调用第二个方法。实际编程时尽量不要重载形参个数可变的方法没啥意义降低代码的可读性。