如何在Java 9的JShell中声明类和接口?


JShell可以提供一个交互式shell,用于快速原型设计、调试和学习Java和Java API,无需main()方法,也无需在执行前编译代码。

类的声明

我们可以像编写Java语言代码一样声明一个类。JShell可以检测到类的完成。

在下面的代码片段中,我们可以声明一个带有两个参数和一个方法的Employee类。

C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro

jshell> class Employee {
...>       String empName;
...>       int age;
...>
...>       public void empData() {
...>          System.out.println("Employee Name is: " + empName);
...>       }
...>    }
| created class Employee


在下面的代码片段中,我们可以为Employee类创建一个对象,并为empName和age设置值。

jshell> Employee emp = new Employee()
emp ==> Employee@73846619

jshell> emp.empName = "Adithya"
$3 ==> "Adithya"

jshell> emp.age = 20
$4 ==> 20

jshell> emp.empData()
Employee Name is: Adithya


接口的声明

我们也可以像声明类一样声明一个接口。声明接口后,JShell会检测到声明的完成。

在下面的代码片段中,我们可以声明一个带有三个抽象方法的Animal接口。

jshell> interface Animal {
...>       public void eat();
...>       public void move();
...>       public void sleep();
...>    }
| created interface Animal


在下面的代码片段中,我们得到一个错误,提示Cat类没有覆盖Animal接口中定义的抽象方法。这与Java语言中实现接口的类概念类似。

jshell> class Cat implements Animal {
...>    }
|    Error:
|    Cat is not abstract and does not override abstract method sleep() in Animal
|    class Cat implements Animal {
|    ^----------------------------

更新于:2020年3月3日

289 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告