value class One {
private int value;
synchronized void x() {}
}
value class Two extends One {}
value class Three extends java.util.ArrayList {}
abstract value class Four {}
value class Five extends Four {}
class Six extends Four {} // it's valid to extend a value class with an identity class
value interface Seven {}
value enum Eight {}
value record Nine(int no) {}
sealed value class Ten {}
non-sealed value class Eleven {}
abstract sealed value class Twelve {}
value class Thirteen extends Twelve {
void x() {
synchronized (this) {
System.out.println();
}
}
}
value class USDCurrency implements Comparable {
private int cs; // implicitly final
private USDCurrency(int cs) { this.cs = cs; }
public USDCurrency(int dollars, int cents) {
this(dollars * 100 + (dollars < 0 ? -cents : cents));
}
@Override
public int compareTo(USDCurrency o) {
return 0;
}
}