From the language spec:
An identifier is an unlimited-length sequence of Java letters and Java
digits, the first of which must be a Java letter.
"Letters":
"Java letters" include uppercase and lowercase ASCII Latin letters A-Z, and a-z, and, for
historical reasons, the ASCII underscore (_) and dollar sign ($).
"Digits":
The "Java digits" include the ASCII digits 0-9
Your example fails because the first character is not a "Java letter" and a dash is also not a "Java letter".
Further, the convention for class names is to use UpperCamelCase (also called 'PascalCase'), though this is not strictly required by the language.
Some people would argue you shouldn't use digits at all in class names but I personally disagree with this. It can result in much more readable names than otherwise would be possible. For example: AspectRatio16x9
vs AspectRatioSixteenByNine