JavaDabbaDoo.org -Tu comunidad Java parlante Fundamentos
Inicio | Cursos infosintesis.net liberados | JavaSE | Iniciación a la Orientación a Objetos paso a paso
Creación de un Televisor estándar
Paso 3: Operativa

Polimorfismo a través de la sobrecarga de método

Los Constructores se declaran de la siguiente forma

nombreDelConstructor(listaDeParámetros){
  cuerpoDelConstructor
}

Nota: para ver también la convención de nombres en los Constructores podemos seguir el vínculo Apéndice - Convenciones Java y UML - Mayúsculas y minúsculas (II)

A la Clase Televisor le vamos a añadir un Constructor sobrecargado

package paqtvestandar;

public class Televisor {
 int canal;

 public Televisor(int valorCanal) {
  canal = valorCanal;
 }

 
public void subirCanal() {
  canal = canal + 1;
 }

 public void bajarCanal() {
  canal = canal - 1;
 }

 public int getCanal() {
  return canal;
 }
}

Como podemos observar después de haber añadido el Constructor sobrecargado en la Clase Televisor, aparece el siguiente error en la Clase Aplicacion

NetBeans 6 - cannot find symbol. symbol: constructor Televisor(). location: class paqtvestandar.Televisor | Create Constructor Televisor() in paqtvestandar.Televisor

Este error nos indica que no encuentra el Constructor sin argumentos de la Clase Televisor. Por tanto, nos vemos obligados a escribir el Constructor de la Clase Televisor aunque no tenga contenido

Para ahondar más sobre esta cuestión podemos ver el Apéndice - Constructores explicitos e implicitos.

Ahora añadimos un Constructor sin argumentos a la Clase Televisor

package paqtvestandar;

public class Televisor {
 int canal;

 public Televisor() {} 

 public Televisor(int valorCanal) {
  canal = valorCanal;
 }

 
public void subirCanal() {
  canal = canal + 1;
 }

 public void bajarCanal() {
  canal = canal - 1;
 }

 public int getCanal() {
  return canal;
 }
}

y como podemo observar el error ha desaparecido

NetBeans 6 - cannot find symbol resuelto

Crear dos objetos del mismo tipo de forma diferente

En ocasiones nos puede convenir inicializar una o más variables de instancia de un objeto en el mismo momento que lo estamos creando

Ahora vamos a crear dos objetos de tipo Televisor. Uno de ellos estará referenciado por una variable de referencia llamada tv y el otro por otra variable de referencia llamada televisor

package paqtvestandar;
public class Aplicacion {

 public static void main(String[] args) {
  Televisor tv;
  tv = new Televisor();
  System.out.println("El canal por defecto es el: " + tv.canal);
  tv.canal = 3;
  System.out.println("El canal seleccionado es el: " + tv.canal);
  tv.subirCanal();
  System.out.println("El canal seleccionado es el: " + tv.getCanal());
  tv.bajarCanal();
  System.out.println("El canal seleccionado es el: " + tv.getCanal());
  Televisor televisor = new Televisor(6);
  System.out.println("El canal del segundo televisor es el: " +                       televisor.getCanal());

  System.out.println("El canal seleccionado es el: " + tv.getCanal());
 }
}

Este es el resultado que obtenemos al ejecutar la Clase Aplicacion

Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Diciembre 2008
Dudas y comentarios: Foro [1-02] Iniciación a la Orientación a Objetos
 
 
 
 
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...