Java中的“公共静态无效”是什么意思?


149

public static void在Java 中是什么意思?

我正在学习中。在我public static void正在使用的书中的所有示例中,使用或创建的任何方法都先于我。这是什么意思?

Answers:


230

这是三件完全不同的事情:

public表示该方法是可见的,并且可以从其他类型的其他对象中调用。其他的选择是privateprotectedpackagepackage-private。有关更多详细信息,请参见此处

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

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

这三种方法的组合最常见于main大多数教程将包括的方法中。


12
由于发问者仍在学习中:这些关键字的顺序也很重要。所有改性剂的第一(publicstaticprivate等),则返回类型(void在这种情况下)。
达朱

1
@ markbyres好的,我理解您的回答,我知道主要方法必须是静态的,但我不知道为什么它是公共的?有什么具体原因吗?
hardik'3

9
Java运行时环境必须调用main方法来启动您的应用程序。当它是私有的时,它不能这样做。
菲利普

44

这三个词具有正交含义。

public 表示该方法对其他包中的类是可见的。

static表示该方法未附加到特定实例,并且没有“ this”。它或多或少是一种功能。

void是返回类型。这意味着“此方法不返回任何内容”。


22

公共关键字是一个访问说明符,它允许程序员控制类成员的可见性。当类成员前面有public时,则可以通过声明该成员的类之外的代码访问该成员。(public的对立面是private,这可以防止成员被其类外部定义的代码使用。)

在这种情况下,main( )必须将其声明为public,因为启动程序时必须由其类之外的代码调用它。

关键字static允许main( )被调用而不必实例化该类的特定实例。这是必需的,因为main( )Java解释器会在创建任何对象之前调用它。

关键字void只是告诉编译器main( )不返回值。如您所见,方法也可能返回值。


18

代表着:

  • public -可以从任何地方调用
  • static -它没有任何对象状态,因此您可以在不实例化对象的情况下调用它
  • void -它不返回任何东西

您可能会认为缺少回报意味着它没有做很多事情,但是,例如,这可能会将事情保存在数据库中。


4

这意味着三件事。

首先public意味着其他任何对象都可以访问它。

static 意味着在调用该函数之前不必首先实例化其所在的类。

void 表示该函数不返回值。

因为您只是在学习,所以在学习类之前不要担心前两个太多,在您开始编写函数(而不是main)之前,第三个不要紧。

我在学习编程时得到的最好的建议,就是我会带给您的,不要担心您马上就不了解这些小细节。全面了解基础知识,然后返回并担心细节。原因是您必须public static void在第一个程序中使用一些东西(例如),而这些东西如果没有先教您一堆其他东西就无法很好地解释。因此,目前,只需接受那是完成的方式,然后继续即可。您很快就会了解它们。


3

考虑典型的顶级类。在顶层只能使用public且没有修饰符访问修饰符,因此您将看到public或根本看不到任何访问修饰符。

之所以使用“静态”,是因为您可能不需要在顶层创建实际的对象(但是有时您会希望这样,因此您可能并不总是看到/使用静态。还有其他一些原因导致您不包括静态内容也是,但这是顶层的典型代表。)

void之所以使用,是因为通常您不会从顶级(类)返回值。(有时候,您可能想返回的值NULL可能不是空的,尤其是在已声明,在顶层分配了一些值的对象上进行初始化的情况下,也可能不会总是使用void)。

免责声明: 我本人是新手,所以如果此答案有任何错误,请不要吊死我。直到今天,我是一名技术招聘人员,而不是开发人员。编码是我的爱好。另外,我总是乐于接受建设性的批评,也喜欢学习,所以请随时指出任何错误。


2
  • public 意味着您可以从类/对象中的任何地方或包或类外部的任何地方访问该类
  • static 表示该语句块仅使用1次的常量
  • void 表示没有返回类型

6
该问题已得到足够的介绍,也许尝试回答新问题,而不是用重复的信息回答老问题。谢谢。
凯夫2012年

就像解释大象一样。人们试图根据他的立场来解释它。我对上面的所有答案都很满意,但是想知道有人怎么说“给Java买书”。
Sulung Nugroho

2

Public -表示该类(程序)可供任何其他类使用。

Static-创建一个类。也可以应用于变量和方法,使它们成为类方法/变量,而不仅仅是局部于该类的特定实例。

Void-这意味着在类完成处理时不返回任何产品。将此与提供主类返回值的帮助器类进行比较,这些类的操作类似于函数;这些在声明中没有空白。


0

static表示该方法与该类相关联,而不是与该类的特定实例(对象)相关联。这意味着您可以调用静态方法而无需创建类的对象。因为使用static关键字main()是您要调用的第一个方法, static所以不需要任何对象实例化...因此,main( )在创建任何对象之前,Java解释程序都会调用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.