Java Language Specification, Version Java SE 21 Edition
8.3. Field Declarations5 Documented Misconceptions
ConstructorParameterIsField
Formal constructor parameters are equivalent to instance variables
RecursiveMethodImpliesRecursiveType
A class with a recursive method represents part of a recursive data structure
ReferringToRecursiveStructureMakesRecursive
A class referring to a recursive data structure is (indirectly) part of that recursion as well
UntypedVariables
Variable declarations don't need a type
UseOfSelfTypeImpliesRecursiveType
If a class has a method that has a local variable, parameter, or return value with the class as its type, the class is a recursive type