第1关:学习-Java类和对象之可变参数

  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明

任务描述

本关任务:编写程序输出考试学生的人数及姓名。

相关知识

可变参数:适用于参数个数不确定,类型确定的情况,Java 把可变参数当做数组处理。

可变参数必须位于最后一项。

原因:当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,Java 无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。

例子:

1. public class Demo {
2. public static void main(String[] args) {
3. print("a","b");
4. print("gsd","safda","f");
5. }
6. // 将所有参数打印
7. public static void print(String... args) {
8. for (int i = 0; i < args.length; i++) {
9. System.out.println(args[i]);
10. }
11. }
12. }

执行结果:

1. a
2. b
3. gsd
4. safda
5. f

无论 print 方法中输入多少参数,只要都是 String 类型,都不会报错,可以正常运行。

可变参数的特点: (1)只能出现在参数列表的最后;

(2)**…位于变量类型和变量名之间,前后有无空格都可以。…**,这三个点的学名叫做可变长参数,也就是相当于一个数组,能够传入 0 个至 n 个参数;

(3)调用可变参数的方法时,编译器为该可变参数隐式地创建一个数组,在方法体中以数组的形式访问可变参数。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。

开始你的任务吧,祝你成功!

/**
 * 定义输出考试学生的人数及姓名的方法,方法名为 print,传参的类型为String,无返回值。
 */
public class Student {

	// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
	/********** Begin **********/
    public static void main(String[] args){
        Student student =new Student();
       // System.out.println("本次参加考试的人有3人,名单如下:");
        student.print("张强","李成","王");
        //System.out.println("本次参加考试的人有2人,名单如下:");
        student.print("马丽","陈玲");
    } 
    public static void print(String ... names){
        int count = names.length;
        System.out.println("本次参加考试的有"+ count +"人,名单如下:");
        for(int i=0;i<names.length;i++){
            System.out.println(names[i]);
        }
    }  

	/********** End **********/
}