© 2016 by Joaquín Menchaca
Welcome to my material for tutoring OOP concepts. This material covers popular class-based invocation-oriented OOP that was popularized by languages like: C++, Objective-C, C#, and Java programming languages.
Then see how these concepts are applied in inspection-oriented OOP languages like Groovy, Python, and Ruby.
I am working on seeing how these concepts can be applied to prototype-based OOP language of JavaScript, and related alternatives of Dart, CoffeeScript, and TypeScript. These are currently (Dec 15, 2014) under experimentation, as JavaScript is a little tricky.
After this, I may dabble with languages like Go, Rust, and Swift.
Last Update: December 15th, 2014
Currently I am working on a cumulative installation guide called Objective Box:
These are the topics ironed out so far (still under development)
This is a simple Person
class and object with a method that says "HelloWorld".
- 📚 Class and Object
- 📗 Class Declaration and Class Method (A00)
- 📗 Object Instantiation and Instance Method (A10)
- 📚 Class Variable and Object Variable
- 📗 Class Variable (B00)
- 📗 Instance Variable (B10)
This uses a Person
and Student
metaphor, where Student
is a type of a Person
.
- 📚 Encapsulation and Access
- 📗 Accessors and Mutators (C00)
- 📗 Properties (C10)
- 📗 Overloading Methods (C20)
- 📗 Methods Variable Parameters (C30)
- 📚 Construction (Initialization)
- 📗 Constructor (D00)
- 📗 Constructor with parameters (D10)
- 📗 Destructor (D20)
- 📚 Overloading Constructors
- 📗 Single Constructors (E00)
- 📗 Multiple Constructors (E10)
- 📗 Delegated Constructor (E20)
- 📗 Dynamic Constructor (E30)
- 📚 Class Variables
- 📗 Class Method (F00)
- 📚 Immutability
- 📗 Immutable Fields (G00)
- 📚 Inheritance
- 📗 Parent Methods (H00)
- 📗 Parent Fields (H10)
- 📗 Parent Constructor (H20)
This uses an abstract Shape
and concrete Triangle
and Rectangle
to illustrate concepts in this section.
- 📚 Overriding
- 📗 Override Methods (I00)
- 📚 Abstraction
- 📗 Abstract Methods (J00)
- 📚 Interface
- 📗 Interface Methods (K00)
There are some other components that are not touched yet, but may add them later. This includes operator overloading, copy constructors, type casting, templates, metaprogramming. A few designated targets include:
- 📚 MixIns (K00)
- 📚 Sealing (L00)
- 📚 Freezing (M00)
I am making a ad-hoc task list TASK.MD to track my research and activities of this project.