类外部的声明或接口(以及类和接口本身的声明)是根据以下规则创建的。
外部声明规则:
1) 可以忽略public、protected和private等访问修饰符。所有其他片段都可以访问所有声明片段。
jshell> private int i = 10;
i ==> 10
jshell> System.out.println(i);
10
登录后复制
2) 修饰符final 可以忽略。允许更改和继承。
jshell> final class A {void m() {} }
| Warning:
| Modifier 'final' not permitted in top-level declarations, ignored
| final class A {void m() {} }
| ^---^
| created class A
登录后复制
3) 修饰符 static 可以忽略,因为不存在容器类。
jshell> static char letter = 'A;
| Warning:
| Modifier 'static' not permitted in top-level declarations, ignored
| static char letter = 'A';
| ^----^
letter ==> 'A'
登录后复制
4) 不允许修改器的默认和同步。
jshell> synchronized void method() {}
| Error:
| Modifier 'synchronized' not permitted in top-level declarations
| synchronized void method() {}
| ^----------^
登录后复制
5) 修饰符抽象仅在类中允许使用。
jshell> abstract void method();
| Error:
| Modifier 'abstract' not permitted in top-level declarations
| abstract void method();
| ^------^
登录后复制
以上就是Java 9中JShell的外部声明规则是什么?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!