繁体   English   中英

“public static void”在Java中意味着什么?

[英]What does 'public static void' mean in Java?

public static void在Java中意味着什么?

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

这是完全不同的三件事:

public表示该方法可见,可以从其他类型的其他对象调用。 其他替代方案是privateprotectedpackagepackage-private 有关详细信息,请参见此处

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

void表示该方法没有返回值。 如果方法返回一个int你会写int而不是void

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

这三个词具有正交含义。

public意味着该方法将在其他包中的类中可见。

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

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

public关键字是一个访问说明符,它允许程序员控制类成员的可见性。 当一个类成员以public开头时,该成员可以被声明它的类之外的代码访问。 (public的反面是private,它阻止成员被其类外部定义的代码使用。)

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

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

关键字void只告诉编译器main( )不返回值。 正如您将看到的,方法也可能返回值。

这意味着:

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

你认为缺少回报意味着它没有做太多,但它可能会在数据库中保存一些东西,例如。

这意味着三件事。

第一个public意味着任何其他对象都可以访问它。

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

void表示函数不返回值。

因为你刚刚学习,所以在你学习类之前不要过多担心前两个,第三个在你开始编写函数之前并不重要(除了main之外)。

我在学习编程时得到的最好的建议,我传给你的是,不要担心你不明白的细节。 全面了解基础知识,然后回过头来担心细节问题。 原因是你必须在你的第一个程序中使用一些东西(比如public static void ),这些东西在没有先教你一些其他东西的情况下也无法真正解释。 因此,暂时接受这就是它的完成方式,并继续前进。 你很快就能理解它们。

考虑到典型的顶级课程。 顶层只能使用public和no修饰符访问修饰符,因此您可以看到公共或根本不会看到任何访问修饰符。

使用`static``是因为你可能不需要在顶层创建一个实际的对象(但有时你会想要这样你可能不会总是看到/使用静态。还有其他原因你不会包含静态这也是顶级的典型。)

void是因为通常你不会从顶层(class)返回一个值。 (有时你会想要返回除NULL以外的NULL因此可能并不总是使用void,特别是在你声明的情况下,初始化一个你正在分配一些值的顶级对象)。

免责声明:我自己是新手,所以如果这个答案有任何不妥之处请不要挂我。 白天我是技术招聘人员而不是开发人员; 编码是我的爱好。 此外,我总是乐于接受建设性的批评和喜欢学习,所以请随时指出任何错误。

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

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

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

  • public表示您可以从类/对象中的任何位置或包或类外部访问该类
  • static表示只使用一次语句块的常量
  • void表示没有返回类型

static表示该方法与该类关联,而不是该类的特定实例(对象)。 这意味着您可以在不创建类的对象的情况下调用静态方法。 由于使用的static关键词main()是你的第一个被调用的方法.. static不需要任何对象实例......所以, main( )是由Java解释器称为由任何对象之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM