1. You need to keep state. For example, if you need to manage a bunch of students and grades, or when you build a game that keeps track of attempts, score, etc (Hangman example). Basically, when you have data and behavior (= variables and methods) that go together , you would use a class.