Los objetos son conceptos abstractos que hacen la programación mucho más sencilla.
Siempre representan alguna "cosa": un coche, una persona, una estructura de datos, etc. Cada "cosa" tiene sus propiedades y sus acciones. Si tomamos un coche como ejemplo, sus propiedades pueden ser su color, modelo, tamaño y velocidad. Sus acciones pueden ser conducir, girar y poner la radio. En informática, las propiedades se llaman "atributos" de un objeto, y sus acciones se llaman "métodos".
Si tienes algo de experiencia en programación, puede que estés confundido sobre por qué necesitamos objetos. Después de todo, los ejercicios de programación que has hecho no utilizan objetos, y eres capaz de escribir grandes programas de todos modos.
Normalmente, pensamos en un programa como el ordenador que ejecuta una secuencia de comandos, manipulando variables hasta que obtenemos los valores y salidas deseados. Sin embargo, resulta que cuando escribimos programas que tratan de resolver problemas del mundo real, puede ser mucho más fácil pensar en un problema de programación en términos de "cosas" que interactúan entre sí - después de todo, esto es lo que sucede en el mundo real.
Por ejemplo, digamos que alguien le pide que escriba un programa para un robot cajero. Este robot hace dos cosas: escanea los artículos y toma el dinero. Similarly, the customer does two things: places items on the counter, and gives money.
I don't know what objects are, so I write a program that looks something like this:
- int total = 0;
- for (i = 0; i< items.length; i++) {
- total += items[i].price;
- }
- int customerMoney = 100;
- int cashierMoney = 0;
- customerMoney -= total;
- cashierMoney += total;
Good, but what if we created a variable that represents the cashier, and a variable that represents the customer?
- Customer john = new Customer();
- Cashier robo = new Cashier();
- robo.scanItems();
- john.giveMoney();
- robo.takeMoney();
Objects allow our code to be focused on things, rather than operations! We're still performing the same operations, but object-oriented programming makes code easier to write, read and understand.