A Brief Look At Object-Oriented Programming

That’s right. I’m about to publish the nerdiest thing on the internet!

A Summary Of Object-Oriented Programming

  • Classes: A class is like a blueprint for something. It lays out all of the shared features of each instance of it (we will cover such instances next). In programming this means that attributes and methods defined in the class will be inherent to all instances of the class. An example of this pertaining to the animal kingdom would be to list the qualities of a mammal. These would include warm blooded, has fur, and typically gives birth to live young. These would all be inherent to the mammal class and while individual mammals may have more or less of each of these…and perhaps sometimes additional features particular to that individual mammal, they all share these features in common. An attempt to reference this to D&D would have me drawing a comparison to a blank character sheet for creating a character:
Every character in D&D will have an AC rating, Hit Points, Initiative, Speed, Strength, Dexterity Etc. Though instances or “objects” of each character will have these numbers/attributes vary, they will all have these things
  • Objects: An object is an instantiated instance of a class. In other words it is a particular and individual example created from a class blueprint. Back to our two analogies we were using…If we made a character named Alex who was human they would get +1 to all d&d core stats, and inherit the features of warm blood and hair from the mammal class.
  • Attributes: An attribute is a specific member of data inside a class or object. The reason I say both class or object is that if an attribute is the same across all instances of the class it can be set within the class blueprint itself and thus be a class attribute. If it varies among instances of the class the value for the attribute should be set upon instantiation of the object. These attributes can be any of any data type or data structure. Referring back to our human Alex, an example of attributes could be those aforementioned d&d core stats which are all integers.
  • Methods: a method is a behavior or procedure that a class or object can perform. An example of a class method would be that all mammals (including Alex) can perform the task eating. An example of a method defined in an object (or instance, thus being called an instance method) would be that because Alex has a dexterity of 14, they get a +2 modifier to dexterity saving throws.

The 4 Key Principles Of OOP

  • Polymorphism: polymorphism is any method that can be called by the same name yet achieves different results based on the objects attributes that call it. An example in regards to programming would be:
Language: Javascript
'Hello, my name is Alex Smith.'
'Hello, my name is Chris Johnson.'
  • Encapsulation: These are methods that are private and can only be called within the instance or class itself. As of right now I a good example of encapsulation in regards to D&D eludes me. But a more real world example would be if you had an instance of a Person class perform a method called open_bank_account. Inside of the open_bank_account method you would need to retrieve the values of the person instances birthday, social security number, and various other private attributes. These are things you don’t want just anyone interacting with the person to get their hands on or view, however you still need to retrieve their values to perform the public facing method of opening a bank account. Thus these attributes are only available within the object in which they are defined.
  • Inheritance: is a practice of one class inheriting methods and data from another in a hierarchical fashion. For instance if you had a parent class of a vehicle a child class of a vehicle might be the truck class. A truck has all the things defined by a vehicle which are 4 wheels, an engine, a windshield etc. but it also has a bed and possibly a trailer hitch. An example involving D&D could be in the case of creature types. For instance all monsters in D&D have the standard core stats, but monsters of the ‘undead’ creature type inherit these stats and also typically have immunity to poison and at least resistance to necrotic damage.
A vampire
  • Abstraction: Can be summarized as only showing the required information to complete a process or fulfill a request. This hides data and processes that are unnecessary when simply requesting a desired output. An example of Abstraction could be (going back to the vehicles example again) when I drive my car to the grocery store, I do not need to know all of the inner workings of the engine. I instead just want the car to take me to the grocery store.





Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Modify Shell Path — macOS Sierra using Terminal

Phase I — Progress report — Health pickup

Association Rule Mining with Apriori Algorithm

Unity UI

22 Essential Kubernetes Concepts

Spring Data Aerospike: Reactive Repositories

“If it turns out that this is incurable, would you marry me?”

Creating a Web Application for Docker

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ryan Schleck

Ryan Schleck

More from Medium

What is Recursion ? What is Recursion ? What is Recursion ?

Object Oriented Programming Concepts in Real Life

Line-by-line coding: Advanced python quiz game

8 Essential Tips To Help You Ace Any Junior Developer Interview