Al momento de crear objetos en Java, debemos tener claras dos cosas indispensables, la primera es el nombre de la clase para la cual vamos a crear el objeto y segundo el constructor que dicha clase posee, es decir, si el constructor recibe o no parámetros.
Para crear objetos en Java, el lenguaje nos proporciona el comando new, con este comando le decimos a Java que vamos a crear un nuevo objeto de una clase en especifico y le enviamos los parámetros (en caso de ser necesario) según el constructor, veamos un ejemplo.
Ejemplo de objetos en java
Vamos a crear un objeto o instancia en Java para la clase que hemos creado al comienzo llamada MiClase. Esta clase tiene un constructor que no recibe parámetros, por lo cual no es necesario enviar algún tipo de valor al momento de crear el objeto, veamos entonces la sintaxis para crear un objeto del tipo MiClase en java.
MiClase miObjeto;
miObjeto = new MiClase();
Otra forma de hacer y que también es válida es la siguiente:
MiClase miObjeto = new MiClase();
Ejemplo 2 de objetos en Java
Vamos ahora a crear un objeto o instancia para la clase Animal (la del ejemplo dos), en esta ocasión tenemos un constructor que recibe un parámetro (el nombre del animal) y que posee tres métodos de los cuales haremos uso para este ejemplo.
import misClases.Animal;
public class Ejemplo
{
public static void main(String[] args)
{
Animal miAnimal = new Animal("Falco");
miAnimal.setEdad(3);
System.out.println("El nombre es: " + miAnimal.getNombre());
System.out.println(" y tiene " + miAnimal.getEdad() + " años");
}
}
Nota: Es importante notar que es similar hacer uso de método set para establecer atributos y usar el constructor enviándole parámetros, es decir, el resultado es el mismo al usar un constructor vacío y luego establecer los valores de los atributos por medio de una función set o usar un constructor que reciba una serie de parámetros que usará para establecer valores a los atributos. La diferencia radica esencialmente en la agilidad y número de líneas, al usar el constructor y enviar los parámetros, el constructor hace todas las asignaciones por nosotros y usamos una sola línea de código (normalmente) mientras que al usar métodos set debemos usar un método set por cada atributo y si tenemos cinco o más atributos ya se vuelve un poco molesto hacerlo además de tener que usar un constructor de todas formas. Veamos un corto ejemplo para estar más claros.
Constructor vs mutador (set)
En programación se conoce como método set al método encargado de establecerle un valor a un atributo según un parámetro recibido (ver setEdad(...) en el ejemplo de clases en Java).
Una pregunta que nos puede surgir es si debemos usar un constructor con parámetros o los métodos set de los atributos para establecer los valores de los atributos del objeto. En realidad es lo mismo en cuanto a resultados u términos generales veamos:
Ejemplo 1: Usando constructor
public class Aclaracion
{
private int atributo1;
private int atributo2;
private String atributo3;
public Aclaracion(int attr1, int attr2, String attr3)
{
atributo1 = attr1;
atributo2 = attr2;
atributo3 = attr3;
}
public static void main(String[] args)
{
Aclaracion ac = new Aclaracion(5, 10, "x");
System.out.println(ac.atributo1 + ", " + ac.atributo2 + ", " +ac.atributo3);
}
}
En este ejemplo hemos hecho uso del constructor para establecerle los valores a los atributos del objeto. Ahora hagamos lo mismo usando métodos set o accediendo directamente a cada atributo.
Ejemplo 2: Usando métodos set
public class Aclaracion
{
private int atributo1;
private int atributo2;
private String atributo3;
public void setAtributo1(int attr1)
{
atributo1 = attr1;
}
public void setAtributo2(int attr2)
{
atributo2 = attr2;
}
public void setAtributo3(String attr3)
{
atributo3 = attr3;
}
public static void main(String[] args)
{
Aclaracion ac1 = new Aclaracion();
Aclaracion ac2 = new Aclaracion();
ac1.setAtributo1(5);
ac1.setAtributo2(10);
ac1.setAtributo3("x");
ac2.atributo1 = 5;
ac2.atributo2 = 10;
ac2.atributo3 = "x";
System.out.println(ac1.atributo1 + ", " + ac1.atributo2 + ", " +ac1.atributo3);
System.out.println(ac2.atributo1 + ", " + ac2.atributo2 + ", " +ac2.atributo3);
}
}
Como podrás evidenciar hacer ambas cosas nos permiten llegar al mismo resultado, sin emabrgo en el ejemplo 2, podemos ver como el número de líneas aumentó considerablemente y fue más engorroso programarlo. En todo caso siempre es buena práctica declarar los métodos set y get para cada atributo, pues si debemos modificar el valor de un atributo cualquiera, debemos hacerlo por medio de un método get y no creando un objeto nuevo.
https://www.programarya.com/Cursos/Java/Objetos-Y-Clases
No hay comentarios:
Publicar un comentario