2. Métodos constructores
Constructores
Se utilizan para instanciar las clases (Para crear objetos de una
clase)
Llevan el mismo nombre de la clase
Tienen accesibilidad public
No tienen tipo de dato de retorno (no retornan un valor)
Si no tiene parámetros crea el objeto con los valores de los
atributos por default.
Puede haber más de un método constructor pero los
parámetros no pueden tener los mismos tipos de datos en el
mismo orden.
Los constructores pueden ser:
Por default (no tiene parámetros)
Por parámetros (asigna los valores de los parámetros a los
atributos del objeto que está siendo creado).
Sobrecarga de
métodos
3. Métodos constructores
Constructores
public class ClaseEjemplo{
private int atributo;
public ClaseEjemplo(){
}
public ClaseEjemplo(int valorAsignar){
atributo = valorAsignar;
}
}
Constructor
por
default
Constructor
por
parámetros
4. FechaEmpleado
- cedula: String
- nombre: String
- apellido: String
- genero: char
- salario: double
Fecha de nacimiento 1
- dia: int
- mes: int
- anio: int
métodos
métodos
Fecha de ingreso 1
public class Empleado{
private String cedula;
private String nombre;
private String apellido;
private char genero;
private double salario;
private Fecha fechaNac;
private Fecha fechaIng;
}
public class Fecha{
private int dia;
private int mes;
private int anio;
}
Los siguientes ejercicios se trabajarán con este ejemplo
5. cedula = 0
nombre = null
apellido = null
genero = ‘ ’
salario = 0.0
fechaNac = null
fechaIng = null
public Empleado(){
}
En la clase Empleado
En la clase Principal – método main()
public static void main(String args[]){
Empleado e = new Empleado();
}
Objeto e de la clase Empleado
Creado con el método
constructor por default
Cuando se invoca
el método
constructor, se
ejecuta este
código
El objeto se inicializa con los valores por default, es
decir:
• Los atributos de tipo numérico con 0
• Los atributos de tipo char con caracter vacío ‘ ‘
• Los atributos de tipo clase con null
• Los atributos de tipo String se crean con null
porque String es una clase en Java (no es un
tipo primitivo de dato).
Constructor por default
6. dia: 0
mes: 0
anio: 0
public Fecha(){
}
En la clase Fecha
En la clase Principal – método main()
public static void main(String args[]){
Fecha f1 = new Fecha();
Fecha f2 = new Fecha();
}
En este ejemplo se crean dos objetos de la clase
Fecha: f1 y f2, ambos con los valores por default,
es decir: 0
Constructor por default
f1
dia: 0
mes: 0
anio: 0
f2
7. Constructores por parámetros
public Fecha (int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
}
En la clase Fecha
En la clase Principal – método main()
public static void main(String args[]){
Fecha f1 = new Fecha(12,10,1980);
Fecha f2 = new Fecha(2,5,2013);
}
dia: 12
mes: 10
anio: 1980En este ejemplo se crean dos objetos de la clase
Fecha: f1 y f2, ambos con los valores enviados
como parámetros
f1
f2
dia: 2
mes: 5
anio: 2013
Los valores se
asignan a los
parámetros en el
orden en que son
invocados
8. cedula = 123
nombre = “Sonia”
apellido = “Torres”
genero = ‘ f’
salario = 2000000.0
fechaNac =
fechaIng =
Constructores por parámetros
public Empleado(String cedula, String nombre, String apellido, char genero,
double salario, Fecha fechaNac, Fecha fechaIng) {
this.cedula = cedula;
this.nombre = nombre;
this.apellido = apellido;
this.genero = genero;
this.salario = salario;
this.fechaNac = fechaNac;
this.fechaIng = fechaIng;
}
En la clase Empleado
En la clase Principal – método main()
public static void main(String args[]){
Fecha f1 = new Fecha(12,10,1980);
Fecha f2 = new Fecha(2,5,2013);
Empleado emp = new Empleado(123,”Sonia”,”Torres”, ‘f’, 2000000.0,f1,f2);
}
Se crea el objeto emp con los valores que se
envían como parámetros desde el main()
Observe que como atributos de fechaNac (fecha
nacimiento) y fechaIng (fecha de ingreso a la
empresa) se le asignan los objetos de la clase
Fecha : f1 y f2
dia: 12
mes: 10
anio: 1980
f1
f2
dia: 2
mes: 5
anio: 2013
emp
9. Constructores por parámetros
public Empleado(String cedula, String nombre,
String apellido, char genero,
double salario, Fecha fechaNac,
Fecha fechaIng) {
this.cedula = cedula;
this.nombre = nombre;
this.apellido = apellido;
this.genero = genero;
this.salario = salario;
this.fechaNac = fechaNac;
this.fechaIng = fechaIng;
}
En la clase Empleado
Otra forma de elaborar los constructores por
parámetros es invocando los métodos
modificadores (set).
Miremos cada instrucción del constructor y
veamos que es la misma de los modificadores:
this.atributo = valor a asignar al atributo;
public Empleado(String cedula, String nombre,
String apellido, char genero,
double salario, Fecha fechaNac,
Fecha fechaIng) {
setCedula(cedula);
setNombre(nombre);
setApellido(apellido);
setGenero(genero);
setSalario(salario);
setFechaNac(fechaNac);
setFechaIng(fechaIng);
}
public void setCedula(int cedula){
this.cedula=cedula);
}
10. Constructores por parámetros
public Empleado(String cedula, String nombre,
String apellido, char genero,
double salario, Fecha fechaNac,
Fecha fechaIng) {
this.cedula = cedula;
this.nombre = nombre;
this.apellido = apellido;
this.genero = genero;
this.salario = salario;
this.fechaNac = fechaNac;
this.fechaIng = fechaIng;
}
public Empleado(String cedula, String nombre,
String apellido, char genero {
this.cedula = cedula;
this.nombre = nombre;
this.apellido = apellido;
this.genero = genero;
}
En la clase Empleado
También se puede
tener más de un
constructor por
parámetros
cedula = 456
nombre = “Juan”
apellido = “Díaz”
genero = ‘ m’
salario = 0
fechaNac = null
fechaIng = null
public static void main(String args[]){
Empleado x = new Empleado(456,”Juan”,”Díaz”, ‘m’);
}
En la clase Principal – método main()
Se crea el objeto x con los valores enviados como
parámetros, los atributos que no envían como
parámetros se inicializan con el valor por default.
x
Se ejecuta este
constructor
11. Método toString
Todos los objetos que creamos en Java por
default (omisión) heredan de la Clase Object y
en esa clase está el método toString cuyo
propósito es convertir algo en String.
public String toString( )
{
return “atributo1 “ + atributo1;
}
}
Sobre-escritura de
métodos
Implementar el código
de algunos métodos
que sólo están
declarados, ya sea en el
API de Java o en las
clases que se crean por
parte del programador
En este caso el método toString() viene declarado en la clase String
que está en el API Java y todos las clases pueden sobreescribir este
método.
Se sobreescribe el método toString() para poder imprimir los valores de
los atributos de un objeto cuando se imprime la referencia del objeto.
Podemos re-escribir (sobre-escribir) este
método para adaptarlo a nuestras
necesidades. En este caso lo utilizaremos para
cuando queramos imprimir un objeto de una
clase, nos imprima lo que está en el método
toString de la clase a la cual pertenece.
12. Método toString
Al realizar este código
en la clase Principal -
método main()
public class Fecha{
private int dia;
private int mes;
private int anio;
// acá van los métodos constructores, modificadores, analizadores y propios de clase
public String toString(){
return “dia:”+ dia + “ mes:” + mes + “ año:” + anio;
}
Ejemplo clase Fecha
public static void main(String args[]){
Fecha f = new Fecha(12,10,1980);
System.out.println (f);
}
dia:12 mes:10 año:1980Muestra por consola
13. Método toString
Al realizar este código
en la clase Principal -
método main()
public class Fecha{
private int dia;
private int mes;
private int anio;
// acá van los métodos constructores, modificadores, analizadores y propios de clase
public String toString(){
return dia + “/” + mes + “/” + anio;
}
Otra forma de sobre-escribir toString para la clase Fecha
public static void main(String args[]){
Fecha f = new Fecha(12,10,1980);
System.out.println (f);
}
12/10/1980Muestra por consola