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