首页 > 编程语言 >Java 21 新特性:Unnamed Classes and Instance Main Methods

Java 21 新特性:Unnamed Classes and Instance Main Methods

时间:2023-10-01 20:12:56浏览次数:45  
标签:Main Java 21 static World main public

Java 21引入了两个语言核心功能:

  • 未命名的Java类你说
  • 新的启动协议:该协议允许更简单地运行Java类,并且无需太多样板

下面一起来看个例子。通常,我们初学Java的时候,都会写类似下面这样的 Hello World 程序:

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

}

对于程序的功能来说,这里有太多的混乱的代码、太多的概念、太多的构造。

The static modifier is part of Java's class-and-object model. For the novice, static is not just mysterious but harmful: To add more methods or fields that main can call and use the student must either declare them all as static — thereby propagating an idiom which is neither common nor a good habit — or else confront the difference between static and instance members and learn how to instantiate an object.

  • Class声明和强制的public访问修饰符是必须的。当用在外部组件定义良好的接口封装代码单元时,它们很有用。但在这个小例子中,它们毫无意义。
  • String[]参数主要用于将代码与外部组件(在本例中为操作系统的shell,接收命令传入的参数)连接。它在这里很神秘且无用,尤其是它从未被使用过。
  • static修饰符是Java类和对象模型的一部分。对于新手来说,这不仅是神秘的,而且是有害的:要添加更多可以调用和使用的方法或字段,学​​生必须要么将它们全部声明(传播一种既不常见也不是好习惯的用法),或者就要面对是否有static修饰的区别问题,并学习如何实例化对象。

使用Java 21的JEP 445特性,该例子将简化为:

class HelloWorld {
  
  void main() {
     System.out.println("Hello, World!");
  }

}

如上例子,Java 21增强了启动Java程序的协议,以允许实例使用main方法,且该方法不需要static、不需要public、也不需要任何参数。

其次,Java 21还引入未命名的类来使声明隐式,像下面这样就可以了:

void main() {
   System.out.println("Hello, World!");
}

怎么样,是不是这样之后,Java的上手例子也能像python、go等其他高级语言那样简单的呢?你觉得是否有助于初学者上手Java呢?

如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!另外,不要走开,关注我!持续更新Java新特性专栏

欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

标签:Main,Java,21,static,World,main,public
From: https://www.cnblogs.com/didispace/p/17739201.html

相关文章

  • pyqt5-QMainWindow主窗口组件
    1、介绍QMainWindow,主窗口组件。该类型组件相比于QWidget作为窗口而言,主要是增加了菜单栏、状态栏和工具栏2、基础使用setIconSize(self,iconSize:QSize)设置图片大小iconSize(self)->QSize获取图片大小setMenuBar(self,menubar:QMenuBar)设置菜单栏men......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》第四周学习笔记
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 无涯教程-JavaScript - UPPER函数
    描述UPPER函数将文本转换为大写。语法UPPER(text)争论Argument描述Required/OptionalText您要转换为大写的文本。文本可以是引用或文本字符串。Required适用性Excel2007,Excel2010,Excel2013,Excel2016Example参考链接https://www.learnfk.com/javascri......
  • 无涯教程-JavaScript - UNICODE函数
    描述UNICODE函数返回与文本的第一个字符相对应的数字(代码点)。语法UNICODE(text)争论Argument描述Required/OptionalTextTextisthecharacterforwhichyouwanttheUnicodevalue.RequiredNotes如果文本包含部分替代或无效的数据类型,则UNICODE返回#VALUE!......
  • Javascript之Object、Array
    Object.keys 对象的键转化为数组Object.values 对象的属性值转化为数组Object.assign 对象的合并 Array.from()伪数组对象的属性值转化为数组。类似Object.valuesArray.reduce 将数组的值减为单个值(从左到右)   ......
  • 20211105李宜时《信息安全系统设计与实现》第四周学习总结
    第七第八章学习笔记学习笔记:文件操作和系统调用文件操作级别文件操作通常可以分为三个级别:低级别文件操作:直接访问文件的二进制数据,通常由操作系统提供支持。文件I/O操作:使用高级别的API(如C的stdio库)来读取和写入文件。文件系统操作:使用文件系统调用访问和管理文件,如POSIX......
  • Mac安装Java开发工具包
    1.检查你是否安装了Java软件首先,检查你是否已安装Java开发工具包版本8或更高版本。要检查是否已安装JDK(以及安装的是哪个版本),打开终端窗口并输入:java-version,然后按Enter键。下面的示例显示了Java版本1.8.0_91--“1”后面就是版本号:如果已安装Java8或更高版......
  • Mac识别不了罗技鼠标(罗技SPK7214)
    遇到的问题:识别不了解决方案:下载LogiMgr链接:https://pan.baidu.com/s/1nMKnDDl-RsKrRi1oGjmo3w提取码:w2cp打开App,拔插下鼠标USB要是还是没反应,重启下电脑再试试我电脑识别到鼠标后,LogiMgr页面还是跟上面的一样。不过无关紧要了,解决了问题就行了......
  • Windows:安装 Java 开发工具包
    1.检查你是否已安装Java软件首先,检查你是否已安装Java开发工具包版本8或更高版本。要检查是否已安装JDK(以及安装的是哪个版本),打开命令提示符窗口并输入:java-version,然后按Enter键。下面的示例显示了Java版本1.8.0_92--“1”后面就是版本号。如果已安装Java8......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记4
    20211306密码系统设计与实现课程学习笔记4任务详情自学教材第7,8章,提交学习笔记知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问......