11 Curso de POO en java - métodos constructores y toString()

13
Métodos constructores Método toString Clara Patricia Avella Ibáñez Tunja – Boyacá – Colombia Docente universitaria [email protected]

description

11_ Métodos constructores y método toString()

Transcript of 11 Curso de POO en java - métodos constructores y toString()

Page 1: 11 Curso de POO en java - métodos constructores y toString()

Métodos constructoresMétodo toString

Clara Patricia Avella Ibáñez

Tunja – Boyacá – ColombiaDocente [email protected]

Page 2: 11 Curso de POO en java - métodos constructores y toString()

Métodos constructores

ConstructoresSe utilizan para instanciar las clases (Para crear objetos de una

clase)Llevan el mismo nombre de la claseTienen accesibilidad publicNo 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 elmismo orden.

Los constructores pueden ser:

Por default (no tiene parámetros)

Por parámetros (asigna los valores de los parámetros a losatributos del objeto que está siendo creado).

Sobrecarga de métodos

Page 3: 11 Curso de POO en java - métodos constructores y toString()

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

Page 4: 11 Curso de POO en java - métodos constructores y toString()

FechaEmpleado

- cedula: String- nombre: String- apellido: String- genero: char- salario: double

Fecha de nacimiento 1- dia: int- mes: int- anio: int

métodosmé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

Page 5: 11 Curso de POO en java - métodos constructores y toString()

cedula = 0nombre = nullapellido = nullgenero = ‘ ’salario = 0.0fechaNac = nullfechaIng = 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 EmpleadoCreado 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

Page 6: 11 Curso de POO en java - métodos constructores y toString()

dia: 0mes: 0anio: 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: 0mes: 0anio: 0

f2

Page 7: 11 Curso de POO en java - métodos constructores y toString()

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: 12mes: 10anio: 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: 2mes: 5anio: 2013

Los valores se asignan a los

parámetros en el orden en que son

invocados

Page 8: 11 Curso de POO en java - métodos constructores y toString()

cedula = 123nombre = “Sonia”apellido = “Torres”genero = ‘ f’salario = 2000000.0fechaNac =fechaIng =

Constructores por parámetrospublic 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: 12mes: 10anio: 1980

f1

f2

dia: 2mes: 5anio: 2013

emp

Page 9: 11 Curso de POO en java - métodos constructores y toString()

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);

}

Page 10: 11 Curso de POO en java - métodos constructores y toString()

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 EmpleadoTambién se puede tener más de un constructor por

parámetros

cedula = 456nombre = “Juan”apellido = “Díaz”genero = ‘ m’salario = 0fechaNac = nullfechaIng = 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

Page 11: 11 Curso de POO en java - métodos constructores y toString()

Método toStringTodos 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 Stringque está en el API Java y todos las clases pueden sobreescribir estemétodo.Se sobreescribe el método toString() para poder imprimir los valores delos 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.

Page 12: 11 Curso de POO en java - métodos constructores y toString()

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

Page 13: 11 Curso de POO en java - métodos constructores y toString()

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