# data[].attributes.body
re usability is a feature within object oriented programming in which it makes code more maintainable which in turn makes it easier for anybody else to understand so that it is adaptable to other parts of code and makes sure that it can be extended if need be. This also refers to the ability to let many programmers to use the same written class of data in which they can add new features to an existing class this within a game design setting is great for saving time instead of re writing certain pieces of code and aid in easier maintenance of a game.

# data[].attributes.body
every single thing within a scene or within a game has object and each one of these objects have their own properties that hold a certain amount of data and different types of data depending on their properties such as maybe a cars mileage this can be referred to as an property of an object which in this instance is a car, there are also have things such as behaviors like for the car object it could drive or maybe a dog object could bark these can also be know as actions

# data[].attributes.body
the act of real world modeling is that of taking a real world object and defining its properties to be used within a coding basis such as for instance the states and behaviors these states and variables are the characteristics of an object and with these they can be interpreted in a coding basis and basically describing the object without using words for instance a phones states could be something from the colour of the phone, what the weight of the phone will be in the environment and finally maybe the charge of phone if you really wanted to go that into depth with how the phone. A behavior or method are actions that an object can perform so for the phone it could possibly vibrate or maybe turn on therefore show a light.

# data[].attributes.body
Within object oriented design it relies more on re-usability of the code and less about how efficient the code is as a whole other things also have overall rain over the code which is how easy the documentation of the code will be and the class structure of the code.

# data[].attributes.body
with messaging it is the basic concept of game objects communicating with each other one example for instance is unity as certain objects have tags and these tags allow communication between objects and then they allow you the ability to set up a trigger of actions or events between two objects so then they would happen in conjunction of each other. so in general terms they send data between each other but only if certain variables have been met for example lets say if a glass being full of water equals true then it might trigger another event where someone drinks the water in the cup from the cup being full.

# data[].attributes.body
https://padlet.com/teaching690/OOD

http://scottpantall.com/2017/09/four-principles-object-oriented-programming-examples-java/

https://stackify.com/oop-concept-abstraction/

https://stackoverflow.com/questions/16014290/simple-way-to-understand-encapsulation-and-abstraction

# data[].attributes.headline
Why is object oriented  Programming/design Useful?

# data[].attributes.subject
Why is object oriented  Programming/design Useful?

# data[].attributes.body
One of the main things that object oriented is useful for is being able to sort sections of code into objects and these objects will all contain their own section of code for easy organisation and along with that will also give protection to that section of data from things such as for instance accidental data corruption and giving direct access to the objects in questions variables and functions .

# data[].attributes.headline
What are the four main principles of object oriented programming?

# data[].attributes.subject
What are the four main principles of object oriented programming?

# data[].attributes.body
The first main principle of object oriented programming is encapsulation.
Encapsulation is just one of the fundamental concepts within object oriented programming and it basically enlists the idea of bundling data and then sorting them into classes such as the ones that could be used within unity so that data can be worked with as one unit but that is not its only function (classes can also be known as blueprints of an object you want to create), it is also used to store, lock and secure that data and there are three main types of stored data: the first is public which mean that anyone can access and is open to any other script within the data. Next is protected which means that a class and subclass of data have access to the variable but not other classes of data and even within this data a setter is accompanied by a getter which is also called an accessor which is used get the required information to perform a certain action for example getting the value of the players health. Finally the third type of data is private in which the only variables within the class that are visible are ones that belong in that class.
Next is abstraction.
Abstraction is one of the main concepts of object oriented programming and by the name you can tell what it's function is as the word abstraction comes from something being abstract or hidden so basically the function of it is to hide most of the complexity's and details from the user so that it is easier to understand. It is mostly used in coding to hide certain unnecessary part within it that would only confuse the user and those reading the code. for example something like a mobile phone, all you need to know is what buttons are to be pressed to send anything from a text message or to make a phone call and then everything in between such as how the call is connected is abstracted away from the user.

inheritance. Inheritance is one of the main principles within object oriented programming and what it entails is relationships and by this I mean the relationship between two or more classes. It is where the child class inherits the properties of the parent class for example the base class is an animal and then following that base class you could have an animals diet for instance carnivore, herbivore and omnivore which then you could many different animals extruding off of it such as lion, elephant and human as each one of these have a certain diet and there we have an inheritance command line where the base or parent class is animal and in turn the child classes are all focused on the theme of animal such as their diets.

Polymorphism. Polymorphism object oriented programming is all about a programming languages ability to process objects differently depending on their data type or class and what this means is that it is the ability to redefine methods for the child classes.

# data[].attributes.headline
Different Programming languages that Object oriented programming is involved with.

# data[].attributes.subject
Different Programming languages that Object oriented programming is involved with.

# data[].attributes.body
C++

Java.

Python

# data[].attributes.body
communication

collaboration and sharing - inheritance

efficiency

real world modeling

Re-usability

# data[].attributes.body
Example
Pressing a key which is an event and then an action happens

# data[].attributes.body
If Character:
Movement speed
Jump height
Point counter
lives

# data[].attributes.headline
What is Object Oriented Design/Programming?

# data[].attributes.subject
What is Object Oriented Design/Programming?

# data[].attributes.body
Object oriented Programming is a programming language model that is used to sort code out into easier and more understandable parts so that for example any problems happen within the programme it will be extremely easy to identify the problem as your not having to drone through hundreds of lines of code and also if any other parties want to look through the code and can do so with ease.