¿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 >> |



