No. The point of code is so that you do not need manual intervention. Handling objects in different states with the same logic is so common that syntax to support this has actually been expanded.
Are you talking about getters and setters? Protecting and escapsulating interior logic of an object is very common. This lets you independently update the design or internal code of an object without having to change all of the code that uses that object.
There was a lesson i learned where you us like “add” and “delete” where you can add and delete properties from a variable. IMO, it seems like that just adds more clutter to your code, whereas, you can just go straight to the variable and add/ delete properties manually.
Objects need to be able to change as the code runs.
As a small example, think of a video game. We need a way to dynamically change the contents of the player’s inventory as they move through the game, picking up and consuming items.