La palabra Clase proviene de Clasificación ( una categoría en la que se coloca algo ). Ahora todos hemos escuchado que una clase es como un plano, pero ¿qué significa esto exactamente? Significa que la Clase contiene una Descripción de una Categoría en particular ( me gustaría mostrar la diferencia entre Clase, Objeto e Instancia con un ejemplo usando Java y pediría a los lectores que la visualicen como una Historia mientras la leen, y si no están familiarizados con Java, no importa ) Así que comencemos con crear una Categoría llamada HumanBeing , para que el programa Java lo exprese de la siguiente manera
class HumanBeing{
/*We will slowly build this category*/
}
Ahora, ¿qué atributos tiene un Ser Humano en general Nombre , Edad , Altura , Peso? Por ahora limitemos nuestro ser a estos cuatro atributos, agreguemos a nuestra Categoría.
class HumanBeing{
private String Name;
private int Age;
private float Height;
private float Weight;
/*We still need to add methods*/
}
Ahora cada categoría tiene un comportamiento, por ejemplo, la categoría Perro tiene un comportamiento para ladrar, buscar, rodar, etc., de manera similar, nuestra categoría HumanBeing también puede tener cierto comportamiento, por ejemplo, cuando le preguntamos a nuestro HumanBeing cuál es su nombre / edad / peso / ¿altura? Debería darnos su nombre / edad / peso / altura, así que en java lo hacemos de la siguiente manera
class HumanBeing{
private String Name;
private int Age;
private float Height;
private float Weight;
public HumanBeing(String Name,int Age,float Height,float Weight){
this.Name = Name;
this.Age = Age;
this.Height = Height;
this.Weight = Weight;
}
public String getName(){
return this.Name;
}
public int getAge(){
return this.age;
}
public float getHeight(){
return this.Height;
}
public float getWeight(){
return this.Weight;
}
}
Ahora hemos agregado comportamiento a nuestra categoría HumanBeing , por lo que podemos preguntar su nombre, edad, altura, peso, pero a quién le pedirá estos detalles, porque class HumanBeinges solo una categoría, es un plano, por ejemplo, un arquitecto hace un plano en un papel del edificio que quiere construir, ahora no podemos seguir viviendo en el plano ( su descripción del edificio ) solo podemos vivir en el edificio una vez que esté construido Así que aquí tenemos que hacer un ser humano de nuestra categoría que hemos descrito anteriormente, entonces, ¿cómo hacemos eso en Java
class Birth{
public static void main(String [] args){
HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
}
}
Ahora, en el ejemplo anterior, hemos creado nuestro primer ser humano con nombre edad altura peso, entonces, ¿qué está sucediendo exactamente en el código anterior? . Estamos creando una instancia de nuestra categoría Ser humano, es decir, se crea un objeto de nuestra clase
Nota: Objeto e Instancia no son sinónimos En algunos casos parece que Objeto e Instancia son Sinónimos pero no lo son, daré ambos casos
Caso 1: Objeto e Instancia parecen ser sinónimos
Permítanme desarrollar un poco, cuando decimos que HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90); un objeto de nuestra categoría se crea en la memoria del montón y se le asigna una dirección, y firstHumantiene una referencia a esa dirección, ahora este objeto es Un Objeto del Ser Humano y también una Instancia del Ser Humano . Aquí parece que Objetos e Instancia son sinónimos, me repito que no son sinónimos
Reanudamos nuestra historia, hemos creado nuestro primer humano, ahora podemos preguntarle su nombre, edad, estatura, peso, así es como lo hacemos en Java
class Birth{
public static void main(String [] args){
HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
System.out.println(firstHuman.getName());
System.out.println(firstHuman.getAge());
...
...
}
}
así que tenemos el primer ser humano y vamos a mover la pluma al darle a nuestro primer ser humano alguna calificación, vamos a convertirlo en Doctor, entonces necesitamos una categoría llamada Doctor y darle a nuestro Doctor un comportamiento, así que en Java hacemos lo siguiente
class Doctor extends HumanBeing{
public Doctor(String Name,int Age,float Height,float Weight){
super(Name,Age,Height,Weight);
}
public void doOperation(){
/* Do some Operation*/
}
public void doConsultation(){
/* Do so Consultation*/
}
}
Aquí hemos usado el concepto de Herencia que trae cierta reutilización en el código, Cada Doctor siempre será un HumanBeing primero, por lo que un Doctor tendrá Nombre, Edad, Peso, Altura que se heredará de HumanBeing en lugar de escribirlo de nuevo. tenga en cuenta que acabamos de escribir una descripción de un médico, aún no hemos creado una, así que creemos un Doctor en nuestroclass Birth
class Birth{
public static void main(String [] args){
Doctor firstDoctor = new Doctor("Strange",40,6,80);
.......
.......
/*Assume some method calls , use of behaviour*/
.......
.......
}
}
Caso 2: Objeto e Instancia no son Sinónimos
En el código anterior podemos visualizar que estamos instanciando nuestra categoría Doctor y dándole vida, es decir, simplemente estamos creando un Objeto de la categoría Doctor , Como ya sabemos, los Objetos se crean en la Memoria Heap y firstDoctorcontiene una referencia a ese Objeto en el montón;
Este objeto en particular firstDoctores el siguiente (tenga en cuenta que firstDoctorcontiene una referencia al objeto, no es el objeto en sí)
firstDoctores un objetoclass Doctor y una instancia de Aclass Doctor
firstDoctornoclass HumanBeing es un objeto de sino una instancia declass HumanBeing
Entonces, un objeto en particular puede ser una instancia de una clase en particular, pero no necesita ser un objeto de esa clase dada
Conclusión:
Se dice que un objeto es una instancia de una categoría particular si satisface todas las características de esa categoría en particular
El ejemplo del mundo real será el siguiente, nacemos como seres humanos, así que imagínenos como un objeto humano, ahora, cuando crecemos, asumimos responsabilidades y aprendemos nuevas habilidades y desempeñamos diferentes roles en la vida. , madre ahora ¿Qué somos en realidad? Podemos decir que somos Objetos de Humanos, Pero Instancias de Hermano, hija, ..., etc.
espero que esto ayude
Gracias