We are using jshell, jshell has mostly the same behavior as Java but because it's interactive it can do more
you can define a record or a variable several times, jshell will use the most recent one
record Point(int x, int y) { }
var p = new Point(2, 3);record Point(int x, int y) {
int distanceInX(int anotherX) {
return Math.abs(x - anotherX);
}
}
var p = new Point(2, 3);
System.out.println(p.distanceInX(0));and you can also directly write a method outside a record, it will act as a static method
void hello() {
System.out.println("hello !");
}
hello();There are a bunch of special commands that starts with '/' you can use /help if you want to know more
By example, you have also a list of the packages automatically imported
/importand you can import new package dynamically
import java.util.zip.*note that unlike import in Python or #include in C, Java import doesn't load any code, it says that is you search a name of a type, here are the packages to search. If a type appear in more than one package, an error will be reported and you will have to import the type explicitly (without any *) by example, to import a List of the package java.util
import java.util.List;With jshell, the code is executed from top to bottom
In Java, when executing java Hello, the launcher looks for a static method
named main that
- must be visible from the outside (
public) - takes an array of String (
String[]) and - returns no value (
void)
record Hello() {
public static void main(String[] args) {
System.out.println("Hello !");
}
}unlike in C, the first argument is args[0].