método tostring para clases en java

Upload: hugocarbajalrios

Post on 24-Feb-2018

251 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Mtodo ToString Para Clases en Java

    1/13

    Mtodo toString para clases en JavaEl mtodotoString nos permite mostrar la informacin completa de un objeto, es

    decir, el valor de susatributos.

    Este mtodo tambin se hereda de java.lang.Object, por lo que deberemos

    sobrescribir este mtodo. Esta es su definicin:

    publicString toString (){

    String mensaje="El empleado se llama "+nombre+" "+apellido+"

    con "+edad+" aos "+

    "y un salario de "+salario;

    returnmensaje;

    }

    El mensaje puede ser como nosotros queramos.

    Veamos un ejemplo practico:

    publicclassEmpleadoApp {

    publicstaticoidmain(String! args) {

    ##$reamos dos objetos distintos

    Empleado empleado%=ne&Empleado("'ernando" "rea" * ,--);

    Empleado empleado*=ne&Empleado("Antonio" ".ope/" *0 1--);

    Empleado empleado=ne&Empleado("Alaro" "2ere/" %1 0--);

    ##3ostramos la in4ormacion del objeto

    System5out5println(empleado%5toString()); System5out5println(empleado*5toString());

    System5out5println(empleado5toString());

    }

    }

    Variable this en ava

    !a variablethisse usa para diferenciar un atributo de una variable normal " corriente

    dentro de una clase. Veamos un ejemplo de un tro#o de una clase:

    ##$onstructores

    #66

    6 $onstructor por de4ecto

    6#

    publicEmpleado(){

    t7is5nombre="";

    t7is5apellido="";

    t7is5edad=-;

    http://www.discoduroderoer.es/metodo-tostring-para-clases-en-java/http://www.discoduroderoer.es/variable-this-en-java/http://www.discoduroderoer.es/variable-this-en-java/http://www.discoduroderoer.es/metodo-tostring-para-clases-en-java/
  • 7/25/2019 Mtodo ToString Para Clases en Java

    2/13

    t7is5salario=-;

    }

    #66

    6 $onstructor con 8 parametros

    6 9param nombre nombre del empleado

    6 9param apellido nombre del empleado

    6 9param edad edad del empleado 6 9param salario salario del empleado

    6#

    publicEmpleado(String nombre String apellido intedad

    doublesalario){

    t7is5nombre=nombre;

    t7is5apellido=apellido;

    t7is5edad=edad;

    t7is5salario=salario;

    }

    $omo vemos, los atributos deben diferenciarse de las variables que pasamos como

    par%metros.&ambin se usa para invocar mtodos de una propia clase dentro de esta. Otro uso

    es invocar otro constructor pasandole como par%metro, los par%metros del propio

    constructor. Veamos un ejemplo, de este ultimo uso:

    ##$onstructores

    #66

    6 $onstructor por de4ecto

    6#

    publicEmpleado(){

    t7is("" "" - -);

    }

    #66

    6 $onstructor con 8 parametros

    6 9param nombre nombre del empleado

    6 9param apellido nombre del empleado

    6 9param edad edad del empleado

    6 9param salario salario del empleado

    6#

    publicEmpleado(String nombre String apellido intedad double

    salario){

    t7is5nombre=nombre;

    t7is5apellido=apellido;

    t7is5edad=edad;

    t7is5salario=salario;

    }

    $omo vemos, es como si llam%ramos al constructor que tiene esos par%metros con

    esos tipos de datos.

    66

    6 $lase Empleado

    6

    6 $ontiene in4ormacion de cada empleado6

  • 7/25/2019 Mtodo ToString Para Clases en Java

    3/13

    6 9aut7or 'ernando

    6 9ersion %5-

    6#

    publicclassEmpleado {

    ##Atributos

    #66 6 :ombre del empleado

    6#

    priateString nombre;

    #66

    6 Apellido del empleado

    6#

    priateString apellido;

    #66

    6 Edad del empleado

    6#

    priateintedad;

    #66 6 Salario del empleado

    6#

    priatedoublesalario;

    ##3etodos publicos

    #66

    6 euele el nombre del empleado

    6 9return nombre del empleado

    6#

    publicString get:ombre() {

    returnnombre; }

    #66

    6 3odi4ica el nombre de un empleado

    6 9param nombre

    6#

    publicoidset:ombre(String nombre) {

    t7is5nombre = nombre;

    }

    #66

    6 euele la edad de un empleado 6 9return edad del empleado

    6#

    publicintgetEdad() {

    returnedad;

    }

    #66

    6 3odi4ica la edad de un empleado

    6 9param edad

    6#

    publicoidsetEdad(intedad) {

    t7is5edad = edad; }

  • 7/25/2019 Mtodo ToString Para Clases en Java

    4/13

    #66

    6 euele el salario de un empleado

    6 9return salario del empleado

    6#

    publicdoublegetSalario() {

    returnsalario;

    }

    #66

    6 Suma un plus al salario del empleado si el empleado tiene mas

    de 8- aos

    6 9param sueldo2lus

    6 9return

  • 7/25/2019 Mtodo ToString Para Clases en Java

    5/13

    t7is5edad=edad;

    t7is5salario=salario;

    }

    }

    $lase ejecutablepublicclassEmpleadoApp {

    publicstaticoidmain(String! args) {

    Empleado empleado%=ne&Empleado ("'ernando" "rea" * 0--);

    Empleado empleado*=ne&Empleado ("" ".ope/" -%0--);

    ##3ostramos el alor actual del salario del empleado%

    System5out5println("El salario del empleado% es

    "+empleado%5getSalario());

    ##3odi4icamos la edad del empleado%

    empleado%5setEdad(8);

    empleado%5plus(%--);

    ##3ostramos el salario de nueo a7ora tendra %-- mas

    System5out5println("El salario actual del empleado% es

    "+empleado%5getSalario());

    ##3odi4icamos el nombre del empleado*

    empleado*5set:ombre("Antonio");

    empleado*5plus(%--);

    ##3ostramos el salario de nueo a7ora tendra %-- mas

    System5out5println("El salario del empleado* es

    "+empleado*5getSalario());

    }

    }

    'erencia ava

    #66

    6 $lase Empleado

    6

    6 $ontiene in4ormacion de cada empleado

    6

    6 9aut7or 'ernando

    6 9ersion %5-

    6#

    publicclassEmpleado {

    http://www.discoduroderoer.es/herencia-java/http://www.discoduroderoer.es/herencia-java/
  • 7/25/2019 Mtodo ToString Para Clases en Java

    6/13

    ##Atributos

    #66

    6 :ombre del empleado

    6#

    protectedString nombre;

    #66 6 Apellido del empleado

    6#

    protectedString apellido;

    #66

    6 Edad del empleado

    6#

    protectedintedad;

    #66

    6 Salario del empleado

    6#

    protecteddoublesalario;

    ##3etodos publicos

    #66

    6 euele el nombre del empleado

    6 9return nombre del empleado

    6#

    publicString get:ombre() {

    returnnombre;

    }

    #66

    6 3odi4ica el nombre de un empleado 6 9param nombre

    6#

    publicoidset:ombre(String nombre) {

    t7is5nombre = nombre;

    }

    #66

    6 euele la edad de un empleado

    6 9return edad del empleado

    6#

    publicintgetEdad() {

    returnedad; }

    #66

    6 3odi4ica la edad de un empleado

    6 9param edad

    6#

    publicoidsetEdad(intedad) {

    t7is5edad = edad;

    }

    #66

    6 euele el salario de un empleado 6 9return salario del empleado

    6#

  • 7/25/2019 Mtodo ToString Para Clases en Java

    7/13

    publicdoublegetSalario() {

    returnsalario;

    }

    #66

    6 Suma un plus al salario del empleado si el empleado tiene mas

    de 8- aos 6 9param sueldo2lus

    6 9return

  • 7/25/2019 Mtodo ToString Para Clases en Java

    8/13

    t7is5salario=salario;

    }

    }

    $lase hija $omercial:

    #66

    6 $lase $omercial6

    6 $ontiene in4ormaciBn de un comercial un tipo de empleado

    6

    6 9aut7or 'ernando

    6 9ersion %5-

    6#

    publicclass$omercial eCtendsEmpleado{

    ##Atributos aun@ue no indi@uemos nada es como si tuiera los

    atributos del padre

    #66 6 $omision por enta del comercial

    6#

    priatedoublecomision;

    #66

    6 $onstructor por de4ecto

    6#

    public$omercial(){

    t7is5comision=-;

    }

    #66

    6 $onstructor con parametros

    6 9param nombre nombre del comercial

    6 9param apellido apellido del comercial

    6 9param edad edad del comercial

    6 9param salario salario del comercial

    6 9param comision comision del comercial

    6#

    public$omercial(String nombre String apellido intedad double

    salario doublecomision) {

    super(nombre apellido edad salario);

    t7is5comision=comision;

    }

    }

    ($lase hija )epartidor

    #66

    6 $lase Departidor

    6

    6 $ontiene in4ormaciBn de un repartidor un tipo de empleado

    6

    6 9aut7or 'ernando

    6 9ersion %5-6#

  • 7/25/2019 Mtodo ToString Para Clases en Java

    9/13

    publicclassDepartidor eCtendsEmpleado{

    ##Atributos aun@ue no indi@uemos nada es como si tuiera los

    atributos del padre

    #66

    6 ona del repartidor

    6#

    priateString /ona;

    #66

    6 $onstructor por de4ecto

    6#

    publicDepartidor(){

    t7is5/ona="";

    }

    #66

    6 $onstructor con parametros 6 9param nombre nombre del repartidor

    6 9param apellido apellido del repartidor

    6 9param edad edad del repartidor

    6 9param salario salario del repartidor

    6 9param /ona /ona del repartidor

    6#

    publicDepartidor(String nombre String apellido intedad double

    salario String /ona) {

    super(nombre apellido edad salario);

    t7is5/ona=/ona;

    }

    }

    Va"amos por partes, en la clase padre, vemos que los atributos en lugar

    de private usamos protected, haciendo que los atributos se hereden a las clases

    hijas.

    En las clases hijas, vemos que despus del nombre de la clase escribimos e*tends

    nombre+clase+padre, tambin tienen sus propios atributos.

    ebemos tener en cuenta varios aspectos, los constructores de la clase hija siempre

    llaman al constructor por defecto -el que no tiene par%metros de la clase padre,tambin podemos indicar que constructor debe de llamar, se indica

    con super-parametros/, despus podemos hacer lo queramos. Si no indicamos nada

    es como si escribiramos super-/.

    &ambin debemos tener en cuenta que los mtodos no es necesario que los

    heredemos, "a que conpublic las clases hijas podr%n acceder a los mtodos de la

    clase padre.

    &ambin podemos llamar mtodos de la clase padre

    consuper.nombre+mtodo-par%metros podemos usarlo para que llame a un mtodo

  • 7/25/2019 Mtodo ToString Para Clases en Java

    10/13

    que necesitamos para un mtodo de la clase hija. 0os ahorrara trabajo, es mejor que

    copiar " pegar cdigo.

    1hora vamos a ver un ejemplo de crear objetos de estas clases heredadas:

    publicclassEmpleadoApp {

    publicstaticoidmain(String! args) {

    ##$reamos objetos de las clases 7ijas

    $omercial comercial%=ne&$omercial("Antonio" ".ope/" *8 ,--

    -);

    Departidor repartidor%=ne&Departidor("'ernando" "rea" 8

    8-- "Este");

    ##Fnocamos los metodos de la clase padre

    comercial%5plus(--);

    repartidor%5plus(--);

    ##3ostramos los atributos usando los metodos get de la clase

    padre

    System5out5println("El salario actual del comercial es

    "+comercial%5getSalario());

    System5out5println("El salario actual del repartidor es

    "+repartidor%5getSalario());

    }

    }

    CLASS FIGURA GEOMETRICA:

    pacGage 'igurasHeometricas;

    public abstract class 'iguraHeometrica {

    protected double alor%;

    public 'iguraHeometrica(double alor%) {

    super();

    t7is5alor% = alor%;

    }

    public double getIalor%() {

    return alor%;

    }

    public oid setIalor%(double alor%) {

    t7is5alor% = alor%;

    }

    public abstract double getArea();

    public abstract double get2erimetro();

    }

    CLASS CIRCULO:

  • 7/25/2019 Mtodo ToString Para Clases en Java

    11/13

    public class $irculo eCtends 'iguraHeometrica {

    public $irculo(double alor%) {

    super(alor%);

    }

    9Jerride

    public double getArea() {

    return 3at752F63at75po&(t7is5alor% *);

    }

    9Jerride

    public double get2erimetro() {

    return 3at752F6t7is5alor%;

    }

    }

    .

    public class $uadrado eCtends 'iguraHeometrica {

    public $uadrado(double alor%) {

    super(alor%);

    }

    9Jerride

    public double getArea() {

    return 3at75po&(t7is5alor% *);

    }

    9Jerridepublic double get2erimetro() {

    return t7is5alor%68;

    }

    }

    ..

    public class Dectangulo eCtends 'iguraHeometrica {

    protected double alor*;

    public Dectangulo(double alor% double alor*) {

    super(alor%);

    t7is5alor* = alor*;}

    public double getIalor*() {

    return alor*;

    }

    public oid setIalor*(double alor*) {

    t7is5alor* = alor*;

    }

    9Jerride

    public double getArea() {

    return t7is5alor%6t7is5alor*;}

  • 7/25/2019 Mtodo ToString Para Clases en Java

    12/13

    9Jerride

    public double get2erimetro() {

    return *6t7is5alor% + *6t7is5alor*;

    }

    }

    public class Kriangulo eCtends 'iguraHeometrica {

    priate double alor*;

    public Kriangulo(double alor% double alor*) {

    super(alor%);

    t7is5alor* = alor*;

    }

    public double getIalor*() {

    return alor*;

    }

    public oid setIalor*(double alor*) {

    t7is5alor* = alor*;

    }

    9Jerride

    public double getArea() {

    return (t7is5alor%6t7is5alor*)#*;

    }

    9Jerride

    public double get2erimetro() {

    return t7is5alor% + (* 6 3at75s@rt((3at75po&(t7is5alor%*)+3at75po&(t7is5alor* *))));

    }

    }

    .

    public class $ubo eCtends $uadrado {

    public $ubo(double alor%) {

    super(alor%);

    }

    public double getArea() { return 3at75po&(t7is5alor% );

    }

    }

    public class 2rincipal {

    public static oid main(String! args) {

    'iguraHeometrica 4igura;

    4igura = ne& $irculo();

    System5out5println(4igura5get$lass());

    System5out5println("Area> "+4igura5getArea());

    System5out5println("2erimetro> "+4igura5get2erimetro());

  • 7/25/2019 Mtodo ToString Para Clases en Java

    13/13

    4igura = ne& $uadrado();

    System5out5println(4igura5get$lass());

    System5out5println("Area> "+4igura5getArea());

    System5out5println("2erimetro> "+4igura5get2erimetro());

    4igura = ne& Dectangulo(*);

    System5out5println(4igura5get$lass());

    System5out5println("Area> "+4igura5getArea()); System5out5println("2erimetro> "+4igura5get2erimetro());

    4igura = ne& Kriangulo(*);

    System5out5println(4igura5get$lass());

    System5out5println("Area> "+4igura5getArea());

    System5out5println("2erimetro> "+4igura5get2erimetro());

    4igura = ne& $ubo();

    System5out5println(4igura5get$lass());

    System5out5println("Area> "+4igura5getArea());

    System5out5println("2erimetro> "+4igura5get2erimetro());

    }

    }