OOP
• Object: instance of a class
• Class: extensible program-code-template for creating objects
• Constructors: special method of a class that initializes an object of that type
• Inheritance: “is a” relationship, allows user to inherit functionality from another class, superclass or base class
• Interface: allows computer to enforce certain properties on an object(class)
• Package: namespace that organizes a set of related classes and interfaces
• OOP: type of programming based on objects that contain data in form of attributes and code in form of methods
• Encapsulation: the hiding of data implementation by restricting access to accessors and mutators
o Accessor: method used to ask an object about itself, usually get method
o Mutator: public methods used to modify state of an object, hiding implementation of how data gets modified, set method
• Abstract Class: may or may not include abstract methods, cannot be instantiated, can be subclassed
• Polymorphism: one name, many forms, multiple methods with same name, slightly different functionality
o Overriding: run-time polymorphism, does not use default implementation
o Overloading: compile-time polymorphism
• Abstraction: used to manage complexity, decompose complex systems into smaller components, distinguishes essential characteristics from other kinds of objects
Java
• Collections: represents a single unit of objects, a group
• Multithreading: process of executing multiple threads simultaneously
o Advantages: does not block user, can perform many operators together saving time, independent, does not affect other threads
• File I/O: Input/Output, System.out, System.in, System.err