无效的目的是什么?

时间:2013-03-25 03:35:13

标签: java

public class test
{
    public static void main(String[] args)
    {
        int x = 5;
        int y = 10;
        multiply(x,y);
    }
    public static void multiply(int x, int y)
    {
        int z = x*y;
        System.out.println(z);
    }
}

我是编程新手,我对一些事感到困惑。

  1. 为什么使用void是正确的?我认为使用void是为了指定不返回任何内容但是,multiply方法返回z。

  2. 是否所有程序都要求您具有“public static void main(String [] args)”? main方法的目的究竟是什么?“String [] args”的参数是什么意思?如果主要方法被删除,该计划是否有效?

  3. 谢谢!

8 个答案:

答案 0 :(得分:7)

首先,乘法方法不返回任何内容;它会打印产品,但不会返回任何值。

public static void multiply(int x, int y)
    {
        int z = x*y;
        System.out.println(z); //may look like a return, but actually is a side-effect of the function.
    } //there is no return inside this block

其次,public static void main为您的计划提供了一个切入点。没有它,你就无法运行你的程序。有关public static void main的使用情况的详细信息,请参阅Java documentation

此处的String[] args表示它捕获命令行参数并将其存储为字符串数组(请参阅上面发布的同一链接,在同一节中)。这个数组在args方法中被称为main(或者您称之为的任何其他内容.Oracle引用argv作为替代名称)

System.out.print告诉程序将某些内容打印到控制台,而return是该方法的结果。例如,如果您在调试方法中添加print(通常的做法),则在程序运行时打印东西,但这不会影响程序返回的内容或程序的结果。< / p>

想象一个数学问题 - 你将工作“打印”到纸上的每一步,但结果 - “答案” - 是你最终回归的。

答案 1 :(得分:2)

  1. 当方法没有返回任何内容时,将其返回类型指定为“void”。你的乘法方法没有返回任何东西。它的最后一行是一个print语句,它只是在标准输出上打印其参数的值。如果方法以“return z”行结束,那么您将无法使用“void”返回类型编译程序。您需要将方法签名更改为public static int multiply(int x,int y)。

  2. 如果它们是可执行的,那么所有Java程序都需要public static void main(String [] args)。它是任何可运行的Java程序的起点。这就是它的含义:

  3. 一个。 public - main方法可以从任何类调用。 main应该始终是公共的,因为它是操作系统调用的方法。

    湾static - main方法应该是static,这意味着操作系统不需要形成它所属的类的对象。它可以在不制作对象的情况下调用它。

    ℃。 void - main方法不返回任何内容(尽管它可能抛出一个被操作系统捕获的异常)

    d。 String [] args - 运行程序时,可以从命令行传递参数。例如,如果您的程序名为Run,则可以执行命令java Run 3 4.在这种情况下,参数将以字符串数组的形式传递给程序Run。 args [1]中的args [0]和“4”中有“3”。

    也就是说,你可以拥有一个没有main的Java程序,它不会被运行。

    我希望有所帮助。

答案 2 :(得分:1)

  

为什么使用void是正确的?我认为使用void是为了指定不会返回任何内容但是,multiply方法返回z。

没有

multiply方法不会返回z。但是,您是对的,void实际上用于指定不会返回任何内容。

  

所有程序都要求您具有“public static void main(String [] args)”吗? main方法的目的究竟是什么?“String [] args”的参数是什么意思?如果删除主要方法,程序是否会起作用?

是的,所有程序都必须具有main功能,看起来像public static void main(String[] args)

答案 3 :(得分:1)

像其他人说的那样,乘法方法不会返回任何东西。其他答案解释了原因。

然而,当你使用void时,该方法无法返回任何内容也会有所帮助。相反,如果您将方法设置为返回任何内容(而不是为void),则需要返回该类型的值。

例如:

public static void main(String[] args){

    int a;
    a = returnInt();

}//End Method

public static int returnInt(){

    int z = 5;
    return z;

}//End Method

main方法不返回任何内容,这就是我们使用void的原因。 returnInt方法返回一个整数。方法返回的整数是z。在main方法中,a = returnInt();将a的值设置为returnInt()返回的值,在这种情况下,a等于5.

试图保持简单,希望它有意义。

答案 4 :(得分:0)

public表示该方法可见,可以从其他类型的其他对象调用。其他替代方案是私有,受保护,包和私有。有关详细信息,请参见此处。

static表示该方法与该类相关联,而不是该类的特定实例(对象)。这意味着您可以在不创建类的对象的情况下调用静态方法。

void表示该方法没有返回值。如果方法返回int,则会写入int而不是void

所有这三个方法的组合最常见于大多数教程将包含的main方法。

马克·贝雷斯的信用

答案 5 :(得分:0)

示例中的multiply()方法不会将z的值返回给调用方法,而是输出 z的值(例如,将其打印到屏幕上。)

正如您所说,void类型关键字意味着该方法不会返回值。这样的方法旨在“只是做某事”。在main()的情况下,该方法不会返回值,因为没有调用方法将其返回 - 这是程序开始的位置。

好的,从技术上讲,最后评论不准确;它实际上可以让你的main返回一个值来启动程序的操作系统或进程,但并不总是必须这样做 - 特别是对于更简单的基于控制台的程序,比如那些你将要编写的程序刚刚开始!:)

答案 6 :(得分:0)

Void类是一个不可实例化的类,它包含对表示原始Java类型void的Class对象的引用。 Main方法是开始执行任何java程序的方法。 主方法声明如下所示

public static void main(String args []){ }

该方法是公共的,因为JVM可以访问它以开始执行程序。

它是静态的,因为它可以在没有对象实例的情况下执行。您可能知道需要一个对象实例来调用任何方法。因此,如果main方法不是静态的,则无法在没有对象的情况下开始执行类。

它只返回一个void,因为一旦主方法执行结束,程序就会终止。因此,Main方法

不能返回任何数据

最后一个参数是String args []。这用于表示用户可以选择在命令行向java程序输入参数。我们可以使用String [] args或String args []。 Java编译器将接受这两种形式。

答案 7 :(得分:0)

  

为什么使用void正确?我以为空是为了   指定什么都不会返回,但是乘法方法返回   z。

您的multiply方法具有void是正确的,因为它什么也不返回,它只是打印到控制台。
返回值意味着将结果提供给程序进行进一步的计算。

例如,返回结果的方法如下:

public static int multiply(int x, int y)
{
    int z = x*y;            //multipling x and y
    System.out.println(z);  //printing the restult to the console
    return z;               //returning the result to the programm
}

这种“新”方法可以像这样使用:

public static void main(String[] args)
{
    int x = 5;
    int y = 10;
    int result = multiply(x,y);  //storing the returnen value of multiply in result 
    int a = result + 2;          //adding 2 to the result and storing it in a
    System.out.println(a);       //printing a to the console
}

输出:
50
52

  

是否所有程序都要求您完全具有“ public static void   main(String [] args)“?main方法的确切目的是什么   参数“ String [] args”是什么意思?该程序会   如果删除了主要方法,那行得通吗?

此方法可为您的程序提供一个安装点。这是您的程序要执行的第一件事是此方法,将其删除将使程序无法运行。
String[] args代表您可以在通过OS(例如OS = Windows)启动之前为您提供的命令行参数。 在此处的其他答案中,很好地解释了所有单词的确切目的。