Instanciación de una clase.
La instancia de una clase es un objeto de una clase respectiva, recuerde que una clase es el molde para los objetos, asi la clase “Carro” puede tener varias instancias (objetos) ejemplo “carro1” es la instancia (objeto)
Recuerda que una clase puede tener varias instancias, se debe recordar que cuando se dibuje la instancia (objeto) de una clase en la parte de arriba se escribe el nombre de la instancia (objeto) empezando con minúscula y poniendo dos puntos al final, y en la parte de abajo se escribe a la clase a la que pertenece, debes recordar que el nombre de una clase empieza con mayúscula.
Muy bien ahora cree varias instancias (objetos) de una misma clase a partir de las clases que ha creado anteriormente, y después cree mas instancias de diferentes clases. Le debe quedar muy similar como las siguiente imagen.
Referencia a objeto
Cada vez que se crea una clase se añade otro tipo de dato que se puede utilizar igual que uno de los tipos simples. Por ello al declarar una nueva variable, se puede utilizar un nombre de clase como tipo.
Esto ya lo mencionamos anteriormente pues una campo puede ser también de tipo objeto, ¿Qué quiere decir esto? Pues que en lugar de ser int o float puede ser el nombre de la variable. Cabe destacar que todo lo que se guarde ahí no se guarda directamente en la variable, como lo que ocurría con las variables primaticas. Acá se creara una referencia, lo que hará que se guarde en otro objeto.
Ahorita lo veremos muy levemente ya que nos meteremos en este tipo de variable más adelante, por lo tanto no se desesperé de no haber entendido lo anterior.
Un ejemplo sería el siguiente
private VisorDeNumeros minutos;
Nos podemos dar cuenta que acá el campo es privado y que es de tipo VisorDeNumeros minutos
Métodos, Declaración de métodos, mensajes, paso de parámetros, retorno de valores, Constructores y destructores
Constructor
Podemos decir que un constructor es un tipo de método que se encarga de inicializar el estado de un objeto, por ejemplo si creamos un campo de tipo entero llamada ano_de_naciemiento el constructor lo que hará es iniciar ese campo a cero, o lo pude iniciar a otro como 1992, se inicializan con el fin que se pueda usar, java inicializa los campos por defectos pero es recomendable inicializarlos para saber que está haciendo el programa que estamos escribiendo. Para variable enteras java las inicializa en 0 pero sin embargo si queremos que se inicialice con 1990 será necesario decirle eso en el constructor.
Esto quedara más claro con el siguiente ejemplo
public class Persona
{
private int ano_nacimiento;
private String nombre;
public Persona()
{
ano_nacimiento=0;
nombre=("");
}
public String Mostar_nombre()
{
return nombre;
}
public int Mostar_ano_de_naciemiento()
{
return ano_nacimiento;
}
public void Mostrar_detalles()
{
System.out.println("El nombre de la persona es " + nombre + " y su año de nacimiento es " + ano_nacimiento);
}
public void Cambiar_ano_nacimiento(int anna)
{
ano_nacimiento=anna;
}
public void Cambiar_nombre(String no)
{
nombre=no;
}
}
Muy bien la primera línea como dijimos anteriormente es la que le da el nombre de la clase, en este caso, esta clase la llamamos Persona, después se abre la llave de la clase, pero no se cierra todavía, recuerda que esa será la última llave que cerraras
Luego se declaran los campos ano_nacimiento y nombre (nótese que son primitivos ya que no se hace referencia a otro objeto) uno de tipo entero (int) y el otro de tipo cadena (String). Es importante que recuerdes que los campos no se declaran dentro de ningún método o constructor, si no que se declaran afuera de la clase
A continuación escribimos nuestro constructor el constructor de una clase siempre se debe llamar igual que el nombre de la clase y este puede tener o no tener parámetros, el ejemplo queda public Persona () podemos ver que la única diferencia con el nombre de la clase es que este no posee la palabra “class”, pues no es una clase si no un constructor de la clase
La sintaxis es:
public + nombre de clase()
Donde public es ya que queremos que cualquier elemento de la clase puede acezar a ese constructor y el nombre como dije, debe ser el mismo que el da la clase, a continuación se abre y cierra paréntesis ya que este constructor no pide ningún paramento, en los párrafos de abajo vernos como queda en caso que pida uno o más parámetros, después de la signatura del constructor abrimos una llave, después se inicializa ano_nacimiento y nombre.
Cabe destacar que al terminar cada sentencia esta debe llevar un punto y coma, después se procede a cerrar la llave del constructor. Con esto nuestro constructor ya quedo listo
Luego escribimos la signatura de un método de acceso que retornara un valor, cuando hablo de retornar no me refiero que lo imprima, si no que el sistema internamente regresa un valor, pero como en bluej es muy amigable podemos ver el valor retornado. La signatura queda de la siguiente manera
public String Mostar_nombre()
Donde public una vez mas es porque queremos que ese método se puede acceder desde cualquier parte de la clases, String se pone por qué el valor a retornar es un cadena (Letras), si el método retornara un valor entero fuera int, o si el método no retornara ningún valor se escribe la palabra void, por último se pone el nombre del método, acá uno le puede poner el nombre que quieras, claro sin dejar espacios, por eso yo separo con guiones bajos. Este método no pide ningún parámetro por eso se abre y cierran los paréntesis, ósea que para trabajar no necesita información extra, mas a bajo en este mismo ejercicio veremos un método que pida parámetros.
Después se abre una llave y continuación, se escribe abajo return nombre; como siempre no debemos olvidad poner punto y coma al final de cada sentencia, por último se cierra la llave del método
Luego se escribe otro método para mostrar el año de nacimiento, este método es muy similar al anterior solo que la única diferencia es que retorna un valor entero y por eso se escribe en la signatura lo siguiente
public int Mostar_ano_de_naciemiento()
Se debe notar que ahora en lugar de String se escribe int, ya que el valor a retornar será de tipo entero, nuevamente no pide ningún parámetro para funcionar, y nos damos cuenta que es un método de acceso y tiene un retorno.
Luego se cierra la llave del método y se procede a escribir un nuevo método, este nuevo método será un poco mas diferente a los otros, lo principal será que este no tendrá un retorno por lo que ahora en lugar de escribir el tipo de dato que retorna se escribe la palabra void, la signatura del método queda de la siguiente forma
public void Mostrar_detalles()
Una vez mas es public, luego se escribe void porque este método no retornara un valor, sino que este imprimirá los detalles, luego se abre la llave y después se escribe la sentencia siguiente:
System.out.println("El nombre de la persona es " + nombre + " y su año de nacimiento es " + ano_nacimiento);
Nos damos cuenta que System.out.println es una orden nueva con esta orden mandamos a imprimir una cadena en la pantalla, se usa de la siguiente forma se escribe System.out.println luego se habrá un paréntesis y se abre unas comillas dobles, después se escribe lo que queremos que salga, si queremos dar un espacio necesitamos darle un espacio antes de cerrar las comillas, luego se pone el signo + seguido del nombre del campo que imprimiremos luego nuevamente se escribe + y a continuación se vuelve abrir unas comillas y se escribe su año de nacimiento es, se vuelve a cerrar las comillas y luego se pone nuevamente el signo más seguido del campo ano_nacimiento al finalizar cerramos el paréntesis y escribimos punto y como
Y queda de la siguiente manera
System.out.println("El nombre de la persona es " + nombre + " y su año de nacimiento es " + ano_nacimiento);
Al imprimirlo en la pantalla, saldrá algo asi:
El nombre de la persona es Daniel y su año de nacimiento es 1992
Luego se cierra la llave y termina el método
Se debe notar que acá una vez más hicimos uso del polimorfismo ya que el + funciona para concatenar una cadena (hacer una cadena nueva a partir de otras datos o cadenas) y también puede puede funcionar como signo de suma
Luego escribimos una nueva signatura de un método esta, nueva signatura llevara un parámetro, y queda de la siguiente manera
public void Cambiar_ano_nacimiento(int anna)
{
ano_nacimiento=anna;
}
Este nuevo método pide un parámetro de tipo entero (int) y dicho parámetro se llama anna (año de nacimiento) es importante destacar que el nombre del parámetro puede ser cualquiera
Luego abrimos la llave y escribimos una nueva sentencia para modificar el campo ano_nacimietno con el parámetro anna, con esto le daremos un nuevo valor al campo ano_nacimeinto
Con esto pasamos el valor de un parámetro a un campo, tenemos que hacer esto ya que el parámetro desparecerá al salir del método y si deseamos seguir usándolo el valor del parámetro necesitamos pasarlo a un campo, ya que el campo vivirá todo el tiempo que viva una clase.
Al terminar la sentencia se escribe punto y coma y luego se cierra la llave.
En el método Cambiar_nombre básicamente asemos lo mismo, con la única diferencia que el parámetro ahora será de tipo String (cadena) y solo puede usarse en campo de tipo String
Los dos métodos son métodos de modificación ya que modifican el valor de un campo, además que ambos no presentan retorno.
Luego se cierra la llave del método y por último se cierra la llave de la clase. El código completo queda de la siguiente manera
Ejercicio
Copie la clase anteriormente mostrada y luego cierre el editor, regrese a la pantalla principal de bluej y cree un objeto de la clase Persona, para crear un objeto dele clic derecho a la clase persona y dele clic en new persona, ahora en la parte de abajo (banco de objetos) vera el objeto creado, dele clic derecho al objeto y mande a llamar a todas los métodos creado, observe como trabaja cada método del objeto
Acá se puede apreciar que la clase persona ya ha sido creada |
Acá se puede apreciar que ya se ha creado un objeto de nombre persona1: y que pertenece a la clase Persona |
Nota cuando mande a llamar el método cambiar nombre al escribir el nombre escriba el nombre entre comillas ejemplo “Daniel” y no Daniel
Ejercicio
Ahora escriba su propia clase, use el nombre que quiera para los campos y métodos
Ejercicio
Cree una nueva clase, pero modifique el constructor para que el año de nacimiento empieza con su año de nacimiento y en nombre empiece con su nombre, ahora necesitara meter dos parámetros en el constructor deberea separarlos por una coma, la signatura seria la siguiente, no olvide pasar los parámetros al los campos
public Persona(int an, String note)
El nuevo contructor debe de quedar muy similar a este
public Persona(int an, String note)
{
ano_nacimiento=an;
nombre=note;
}
Ejercicio
Cree una nueva clase, pero modifique el constructor para que el año de nacimiento empieza con su año de nacimiento y en nombre empiece con su nombre, ahora necesitara meter dos parámetros en el constructor deberea separarlos por una coma, la signatura seria la siguiente, no olvide pasar los parámetros al los campos
public Persona(int an, String note)
El nuevo contructor debe de quedar muy similar a este
public Persona(int an, String note)
{
ano_nacimiento=an;
nombre=note;
}
Con estos ejercicios vimos, que es un método, como se declara, como se pasa un parámetro a un campo, que es un constructor, como se usa y como se declara, y que es el retorno y como se usa, mas adelante vernos el resto de los temas
Estudiante de ISC Daniel ZVPL