---
title: "Discussion on \"An objective look at Object-Oriented Programming - 1\" | Hashnode"
description: "Discussion on \"An objective look at Object-Oriented Programming - 1\". Many programmers, especially when starting out, find it hard to really understand Object-Oriented Programming (OOP). OOP principles (encapsulation, abstraction, inheritance, polymorphism) tend to be hurled at you so fast, and yes, it can get intimida..."
url: "https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [An objective look at Object-Oriented Programming - 1](https://majore.hashnode.dev/an-objective-look-at-object-oriented-programming-1?utm_source=hashnode&utm_medium=feed)

Many programmers, especially when starting out, find it hard to really understand Object-Oriented Programming (OOP). OOP principles (encapsulation, abstraction, inheritance, polymorphism) tend to be hurled at you so fast, and yes, it can get intimida...

Jan 11, 2021 · 7 min read · majore.hashnode.dev  
Read the article

-   [#oop](https://hashnode.com/tag/oop)
-   [#object-oriented-programming](https://hashnode.com/tag/object-oriented-programming)
-   [#programming](https://hashnode.com/tag/programming)

## Written by

[Emmanuel Aliyu](https://hashnode.com/@MajorE)

@MajorE

  
[View profile](https://hashnode.com/@MajorE)

Flutter Developer

## Responses 4

Markdown supported · ⌘↵ to post

[Maxi Contieri](https://hashnode.com/@mcsee)

[Jan 12, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffdab38c162d710c9b12a69)

great article and great analogies

I like it very much the interactions part

I think you can omit the _characteristics_ all together, many programmers mistake them with state and then violate information hiding and encapsulation principles.

you can define an object by its essential interactions and it is not necessary to deal with accidental characteristics

[Emmanuel Aliyu](https://hashnode.com/@MajorE)

[Jan 13, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffdab38c162d710c9b12a69#reply-5ffed972c162d710c9b13f16)

Thank you.

I see what you're saying. The _characteristics_ are a consequence of the actions it performs or receives (the essential interactions).

But I considered it important to discuss them, to make background for discussing the other things in the parts to come. Things such as constructors.

I will definitely bear your comment in mind as I write. Thank you so much.

[Maxi Contieri](https://hashnode.com/@mcsee)

[Jan 13, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffdab38c162d710c9b12a69#reply-5ffeed0bb00f7510ee959463)

[Emmanuel Aliyu](https://hashnode.com/@MajorE)

Great !

Remember full constructors are very important to favor immutability.

So I guess your point will be to link those constructors to what you call _characteristics_, but even that is accidental.

To store (or not) these essence in _characteristics_ is a design decision.

You can ask for Cartesian coordinates when building a point but store in polar format. This decouples the behavior (be a point) to the accidental _characteristics_ (store as x and y).

This is very difficult to understand to beginners since they mostly care about implementation.

[Edidiong Asikpo (Didi)](https://hashnode.com/@didicodes)

[Jan 11, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffcd53e09213c0838476087)

I absolutely love all the interesting examples you used to explain OOP. This is so beginner-friendly and awesome. Thanks for sharing!

[Emmanuel Aliyu](https://hashnode.com/@MajorE)

[Jan 13, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffcd53e09213c0838476087#reply-5ffed790b00f7510ee9592fa)

Thank you for the feedback.

[Seun Taiwo](https://hashnode.com/@dro)

[Jan 11, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffca6a6a7fede03b0060f09)

You hit the nail on the head

[Emmanuel Aliyu](https://hashnode.com/@MajorE)

[Jan 13, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffca6a6a7fede03b0060f09#reply-5ffed9bab00f7510ee959333)

Thank you.

[Caleb Olojo](https://hashnode.com/@Seven_)

[Jan 11, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffca61384ee9d03dc8965d3)

This is a nice illustration of the OOP concept.

Thanks for sharing.

[Emmanuel Aliyu](https://hashnode.com/@MajorE)

[Jan 13, 2021](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffca61384ee9d03dc8965d3#reply-5ffed99ac162d710c9b13f1d)

I appreciate the feedback. Thank you.
