Classes
- Classes are “blueprints” that we use to instantiate objects
Why Do We Need Classes
- Classes are an essential aspect of OOP
- Models real world objects but in code
Anatomy of a Class
- Object
- State, attributes, behavior
- Instance of a class
- Represented by an instance in the program
- Class
- Defines an abstract data type
- Object references
- Instance Variables
- Attributes, behaviors
- Data for objects
### Methods and Constructors
- Methods
- Behaviors or actions that apply to the objects
- Behaviors or actions that apply to the objects
Main Method
- Tests the class
- Instance variables
- Attributes, fields, properties
Constructors
- Special method for object instantiation
- Sets initial values for variables
- Can run methods
- Default Constructor
- No constructor defined
- No arguments
- Can have multiple constructors per class
- Comment with // for a single line
- / / for multiple line
- /* / for documentation comment
- Help with explaining what code is about
- Preconditions
- What must be true before code is implemented
- Postconditions
- Should be true after method is run
- Describe the output if the method
Accessor & Mutator Methods
- Get of methods or getters
- Allows you to ‘get’ values of variables
- Returns a copy of variable
- Non-Void Methods
- Return a value of specified data type
- No parameters
Mutator Methods
- Set of methods or setters
- Allows you to change the values of instance variables
- Void methods
- Will not return a value
- Will take parameters for instance variables
Writing Methods
- 3 Parts:
- Method Definition (Modifiers, Return Type)
- Method Signature (Name, Parameters)
- Method Body (Code)
- camelCase
- Object.method()
Method Return Types
- String
- Int
- Bool
- Any Object Type
- Void
- Method have any return values
Keywords in Java
- Key word usually used after access modifiers
- Denotes as belonging to a class
- Objects cannot reference/use static variables & methods
- Universally shared variables and methods among objects
This
- Refers to the constructor that it is being called in
- Eliminates confusion between attributes and parameters
Access Modifiers
- Restricts scope of classes, variables, and functions
- Mainly used for encapsulation
- Prevents misuse of data & methods
Scope and Access
- Where a variable can be accessed or used
- 3 Levels:
- Class Level: Instance var
- Method Level: Local, Parameter var
- Block Level: Loops, If/Else