Java versions
versions10Java25FlexibleConstructors
- Path
- pkg2versions/versions10Java25FlexibleConstructors.java
- Package
- pkg2versions
- Study order
- 10
- Run
- Single-file source launch
- Command
- java pkg2versions/versions10Java25FlexibleConstructors.java
- Version in the filename
- Java 25
- Example
- Java 25 example
- Requires
- Java 25
There is no in-browser runner. This is the file from the curriculum, unchanged.
1package pkg2versions;2 3/*4 * versions10Java25FlexibleConstructors.java5 * Flexible constructor bodies (JEP 513), final in Java 25.6 * Preview in Java 22, Java 23, and Java 24. Statements before super(...)7 * cannot use the object under construction.8 */9public class versions10Java25FlexibleConstructors {10 static class Named {11 final String name;12 13 Named(String name) {14 this.name = name;15 }16 }17 18 static class User extends Named {19 final int age;20 21 User(String name, int age) {22 if (age < 0) {23 throw new IllegalArgumentException("age");24 }25 super(name);26 this.age = age;27 }28 }29 30 public static void main(String[] args) {31 System.out.println(new User("ada", 36).name);32 }33}