Java Language Specification, Version Java SE 21 Edition
8.3. Field Declarations5 Documented Misconceptions
ConstructorParameterIsField
Formal constructor parameters are equivalent to instance variablesRecursiveMethodImpliesRecursiveType
A class with a recursive method represents part of a recursive data structureReferringToRecursiveStructureMakesRecursive
A class referring to a recursive data structure is (indirectly) part of that recursion as wellUntypedVariables
Variable declarations don't need a typeUseOfSelfTypeImpliesRecursiveType
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