¿Qué es un objeto, una instancia y una clase en POO?
En este tutorial vamos a definir el concepto de objeto, instancia y clase en la programación orientada a objetos.
Para ello vamos a utilizar un ejemplo en el que vamos a guardar información acerca de un perro. Con lo que hemos aprendido hasta ahora, guardamos la información en variables locales en nuestro método main;
package com.edu4java.tutorial11; public class Tutorial11 { public static void main(String[] args) { // local variables String name = "Coco"; String colour = "brown"; double weight = 1.5; String name2 = "Rope"; String colour2 = "green"; double weight2 = 50; } }
Hasta ahora hemos guardado la información de dos perros sin problemas, pero imaginémonos que queremos guardar la información de 10 perros...tendríamos 30 variables y el código se volvería menos legible.
Para evitar esto en la programación orientada a objetos, se ha creado el concepto de clase, que agrupa datos. Una clase es un molde para crear un objeto o instancia. En este caso tendríamos la clase Dog (perro) a partir de la cual crearíamos un objeto que tendría asociados todas las variables definidas en la clase Dog.
package com.edu4java.tutorial11; /** * @author Eli * A class is a mould from which we can create objects or instances * An object is an instance of a class */ public class Dog { //object variables public String name; public double weight; public String colour; } }Ahora creamos un nuevo objeto y lo guardamos en una variable de tipo Dog. A partir de ese momento se crean las variables asociadas a ese objeto, donde podemos guardar nuestra información sobre el perro; nombre, color y peso.
package com.edu4java.tutorial11; public class Tutorial11 { public static void main(String[] args) { Dog dog1 = new Dog(); dog1.name = "Coco"; dog1.colour = "brown"; dog1.weight = 1.5; Dog dog2 = new Dog(); dog2.name = "Rope"; dog2.colour = "green"; dog2.weight = 50; printToConsole(dog1); printToConsole(dog2); } private static void printToConsole(Dog dog) { System.out.println(); System.out.println("name: " + dog.name); System.out.println("colour: " + dog.colour); System.out.println("weight: " + dog.weight); } } }Ahora tenemos dos objetos que pertenecen a la misma clase Dog. Cada objeto lo tenemos guardado en una variable distinta; dog1 y dog2. Para ver como funciona he creado un método que los imprime; printToConsole(Dog dog).
<< Anterior | Siguiente >> |