Java中的main方法和可变参数

分析main方法

在Java中,main方法是程序的入口点。当你运行一个Java程序时,JVM(Java虚拟机)会寻找一个名为main的方法,并从这里开始执行。以下是对Java中main方法的全面介绍:

  1. 定义:

    • public static void main(String[] args)
  2. 参数:

    • String[] args: 这是一个字符串数组,它包含了从命令行传递给程序的参数。
  3. 返回类型:

    • void: main方法没有返回值。
  4. 访问修饰符:

    • public: 这意味着任何其他类都可以访问它。
    • static: 这意味着你不需要创建类的实例就可以调用它。这也是为什么JVM可以调用它,因为JVM是静态链接的。
  5. 用途:

    • 作为程序的入口点。当你运行一个Java程序时,JVM会查找并执行这个main方法。
    • 用于测试和调试代码。
    • 你可以从main方法中调用其他方法,从而组织你的代码。
  6. 使用示例:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

当你运行这个程序时,它会输出“Hello, World!”到控制台。
7. 注意事项:

* 每个Java应用程序都必须有一个`main`方法。如果你尝试编译一个没有`main`方法的类,你会得到一个错误。
* `main`方法必须是`public`的,这样JVM可以访问它。但是,它也可以是`private`的或`protected`的,但这通常不推荐,因为这可能会限制其他类访问它。
* `main`方法必须是静态的,因为JVM启动程序时还没有创建任何对象实例。因此,不能调用非静态的方法或访问非静态的字段。

形参为String[] 那么实参到底是什么?

public class TestArray10{
    public static void main(String[] args){
                //从侧面验证:
                //int[] arr1; //如果对数组只声明,没有后续操作,那么相当于 白定义了。
                //int[] arr2 = null; 
                //System.out.println(arr2.length);//Exception in thread "main" java.lang.NullPointerException
                //int[] arr3 = new int[0];
                //System.out.println(arr3.length);
                //int[] arr4 = new int[4];
                //System.out.println(arr4.length);
                
                //System.out.println(args.length);//0
                //从这个结果证明,参数是String[],实参是  new String[0] 
                //默认情况下,虚拟机在调用main方法的时候就是传入了一个长度为0的数组
                
                System.out.println(args.length);
                for(String str:args){
                        System.out.println(str);
                }
        }
}
  • 从这个结果证明,参数是String[],实参是 new String[0]
  • 默认情况下,虚拟机在调用main方法的时候就是传入了一个长度为0的数组

可变参数

在Java中,可变参数(Variable Arguments)允许您在方法中定义一个参数列表,该列表可以接受任意数量的参数。使用可变参数可以方便地传递多个参数给方法,而不需要创建数组或使用其他集合类。

要声明一个可变参数,您需要在参数类型后面添加三个点(…)。例如,如果您想定义一个方法,该方法接受任意数量的整数作为参数,您可以这样声明:

public void myMethod(int... numbers) {
    // 方法体
}

现在,您可以在调用myMethod方法时传递任意数量的整数参数:

myMethod(1);
myMethod(1, 2);
myMethod(1, 2, 3, 4);

在方法体内部,可变参数被视为数组。您可以使用常规的数组操作来访问和操作这些参数。例如,您可以使用for-each循环来遍历参数:

public void printNumbers(int... numbers) {
    for (int num : numbers) {
        System.out.println(num);
    }
}

除了整数之外,您还可以使用其他数据类型(如StringObject等)作为可变参数。需要注意的是,一个方法中只能有一个可变参数,并且它必须是方法签名的最后一个参数。

实例

public class Example {
    public static void main(String[] args) {
        printSum(1, 2, 3, 4);
        printSum(5, 6);
        printSum(7);
    }

    public static void printSum(int... numbers) {
        int sum = 0;
        for (int num : numbers) {
            sum += num;
        }
        System.out.println("Sum: " + sum);
    }
}

在这里插入图片描述

在这个例子中,我们定义了一个名为printSum的方法,它接受一个可变参数numbers,该参数可以接受任意数量的整数。在方法体内部,我们使用for-each循环来遍历参数,并将它们相加得到总和。然后,我们打印出总和。在main方法中,我们调用printSum方法并传递不同数量的参数来演示其用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecure

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值