---
title: "Comment by Maxi Contieri on \"An objective look at Object-Oriented Programming - 1\" | Hashnode"
description: "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"
url: "https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1/comment/5ffdab38c162d710c9b12a69"
---

[Discussion](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1)

Comment [An objective look at Object-Oriented Programming - 1](https://hashnode.com/posts/an-objective-look-at-object-oriented-programming-1/5ffca10e84ee9d03dc8965a1)

[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.
