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



