1. 简介
Java 9引入了一个新的交互式编程工具——JShell。JShell提供了一个控制台界面来编写和执行Java代码。在JShell中,我们需要遵循一些规则来完成交互式编程。本文将介绍JShell的相关规则。
2. JShell交互模式
2.1 进入JShell
在命令行窗口中输入jshell命令即可进入JShell。JShell会显示一个提示符
jshell>
2.2 JShell命令
JShell有很多命令,可以通过/来查看所有命令。
jshell> /
| Type a Java language expression, statement, or declaration.
| Or type one of the following commands:
/list [all|start]
/history [number | all]
/restart [no | yes]
/set feedback [verbose | normal | concise]
/set mode [smart | strict]
/set prompt string
/set start [#number|class|list|method|last|all|unassigned|replay:id]
/set format objects|classes|methods|vars|all|none
/set imports
/set feedback
/methods [-all]
//后面是省略的内容
其中一些常用的命令如下:
/list [all|start]:列出当前的定义。
/history [number | all]:显示或执行命令历史记录的内容。
/restart [no | yes]:重新启动JShell,丢弃所有定义。
/exit:退出JShell。
3. JShell规则
3.1 JShell表达式的定义
JShell表达式是一个完整的Java表达式。在JShell中,您可以键入表达式并立即查看结果。
JShell表达式的定义如下:
语法合法的Java表达式
变量赋值语句
声明语句
无返回值的方法调用
3.2 JShell声明的规则
在JShell中声明变量有三种方式:
使用var关键字。
使用明确类型的变量声明语法。
使用用于声明方法的语法声明局部变量,无需方法声明头。
3.3 JShell方法的规则
JShell方法的规则如下:
声明的方法必须是public访问修饰符,不得使用关键字abstract或final。
不允许使用默认(即,无参)构造函数。
不能声明递归方法。
不允许声明多个具有相同签名的方法。
方法可以具有参数(但必须指定类型)。
3.4 JShell类的规则
JShell类的规则如下:
不允许在顶级上下文中声明内部类。
必须使用完全限定名来指定引用类。
不能修改现有类的名称、包或方法签名。
在顶级上下文中声明的类必须是public的。
3.5 JShell导入的规则
JShell导入的规则如下:
任何包含在引用名称的类中的类,都不应包含在导入语句中。
您可以使用*.语法来导入一个包中的所有类:import java.util.*;
按照Java规范,静态导入不是普通导入的一种形式。
4. 总结
JShell提供了一个新的交互式编程环境,可以为Java程序员提供更好的开发体验。但是在使用JShell时,需要遵循一些规则,以确保程序的正确性。