OOP Flashcards
Computers became more powerful, and so programs became larger and more complex.
“Software Crisis” (1960’s – 1980’s)
creating high-quality software systems in an efficient and predictable manner
Software Engineering
was one of the prime concepts used to simplify programming problems
Abstraction
- routines were grouped into “functions”
- you could hide data to be accessible to only within a function (“encapsulation”)
Procedural Programming
- further refinement of procedural programming
- formal methods of planning data-flow and functional decomposition
- “goto” banned
Structured Programming
Takes encapsulation even further by localizing data and associated operations into a mini-program called an “object”.
Object-Oriented Programming
Goals of OOP
- Comprehensibility
- Maintainability
- Reusability
- Pluggability
it has attributes and methods
Object
The outward appearance of an object. How other objects see the object.
Interface
the definition of an object
Class
the created object of a class
Instance
Three Core Principles of OOP
- Encapsulation
- Inheritance
- Polymorphism
The grouping of data and operations into objects.
Encapsulation
Hiding of data and operations from other objects.
Encapsulation
A way to create a new class by “deriving” from another class.
Inheritance
is a way to allow objects to share code, preventing code-duplication
Inheritance
When a single datatype exhibits different behaviors during execution
Polymorphism
when a subclass re-implements one or more methods from the superclass
Method Overriding
Unique in a subclass
Specialization
cant be inherit but can be instantiated
Final Class
can be inherited but cant be instantiated
Abstract Class