You read "It is an entity that can maintain its state" as "It is an entity thatmust maintain its state", which is incorrect. By the definition you gave, Javais indeed an OOP language.