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);
}
}
我是编程新手,我对一些事感到困惑。
为什么使用void是正确的?我认为使用void是为了指定不返回任何内容但是,multiply方法返回z。
是否所有程序都要求您具有“public static void main(String [] args)”? main方法的目的究竟是什么?“String [] args”的参数是什么意思?如果主要方法被删除,该计划是否有效?
谢谢!
答案 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)
当方法没有返回任何内容时,将其返回类型指定为“void”。你的乘法方法没有返回任何东西。它的最后一行是一个print语句,它只是在标准输出上打印其参数的值。如果方法以“return z”行结束,那么您将无法使用“void”返回类型编译程序。您需要将方法签名更改为public static int multiply(int x,int y)。
如果它们是可执行的,那么所有Java程序都需要public static void main(String [] args)。它是任何可运行的Java程序的起点。这就是它的含义:
一个。 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)启动之前为您提供的命令行参数。
在此处的其他答案中,很好地解释了所有单词的确切目的。