Choosing Classes
A class represents a single concept from the problem domain
Name for a class should be a noun that describes concept
Concepts from mathematics:
Point
Rectangle
Ellipse
Concepts from real life:
BankAccount
CashRegister
Actors (end in -er, -or) – objects do some kinds of work for you
Scanner
Random // better name: RandomNumberGenerator
Utility classes – no objects, only static methods and constants
Math
Program starters: only have a main method
Don't turn actions into classes:
Paycheck is a better name than ComputePaycheck