Getters and setters are used to effectively protect data in classes. Getters return the value of a variable while setters set the value. They follow a standard naming convention starting with get/set followed by the variable name capitalized. Constructors initialize objects and can provide initial values. They have the same name as the class and no return type. Value types like int store values directly while reference types store references to objects. The Math class provides predefined math methods that can be accessed without creating an object.