TylerRosen
2/22/2018 - 1:40 AM

OOP Notes

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