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 7: Operativa

Subir y bajar la intensidad del color del televisor

Ahora queremos que el Televisor estándar además de ofrecer la operativa de cambiar los canales, también nos permita aumentar y disminuir la intensidad del color. Para ello vamos a crear cuatro nuevos métodos

Este es la implementación de la Clase Televisor

package paqtvestandar;

public class Televisor {
 private int canal;

 public Televisor() {
 }

 public Televisor(int valorCanal) {
 
 setCanal(valorCanal);
 
 

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

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

 public int getCanal() {
  return canal;
 }

 public void setCanal(int valorCanal) {
  if (valorCanal < 0){
   canal = 0;
  }
  else {
   canal = valorCanal;
  }
 }

 public void subirColor(){
  System.out.println("Televisor - subirColor(): estoy subiendo el color");
  
subirColorAyuda();
 }

 
private void subirColorAyuda() {
  System.out.println("Televisor - subirColorAyuda(): sigo subiendo el color");
 }

 
public void bajarColor(){
  System.out.println("Televisor - bajarColor(): estoy bajando el color");
  
bajarColorAyuda();
 }

 
private void bajarColorAyuda() {
  System.out.println("Televisor - bajarColorAyuda(): sigo bajando el color");
 }

}

Compilamos la Clase Televisor y seguidamente modificamos la clase Aplicacion

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.getCanal());
  tv.setCanal(3);
  System.out.println("El canal seleccionado es el: " + tv.getCanal());
  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(-5);
  
System.out.println("El canal del segundo televisor es el: " +                       televisor.getCanal());
  System.out.println("El canal seleccionado es el: " + tv.getCanal());

  tv.subirColor();
  // tv.subirColorAyuda();
 }
}

Al ejecutar la Clase Aplicacion vemos los mensajes correspondientes a los métodos subirColor() y subirColorAyuda()

Si descomentamos la invocación al método subirColorAyuda() apuntado por la variable de referencia tv, vamos a poder ver que el compilador se queja (y con razón!) por que estamos intentando acceder a un método de ámbito private

NetBeans 6 - subirColorAyuda()  has private access in paqtvestandar.Televisor

Subir y bajar el volumen del televisor

Según el siguiente Diagrama de Clases de Diseño

vamos a implementa las Clases Televisor y Aplicacion de tal forma que cuando creemos una instancia de Televisor, ésta ya tenga el volumen por defecto en posición 5 sin que se lo tengamos que indicar desde la Clase Aplicacion de forma explícita

Por lo que respecta a la implementación de los métodos subirVolumen() y bajarVolumen(), no tendremos en cuenta los valores negativos ni tampoco el valor máximo del volumen, así que tendremos que implementar estos métodos con el siguiente código

volumen = volumen + 1
volumen = volumen - 1


Desde la Clase Aplicacion tenemos que


Compara tu código con la solución propuesta

Página anterior
Ignasi Pérez Valls
fundador-director Infosintesis Solutions Group
asesor-formador independiente
ignasiperez[ARROBA]javadabbadoo[PUNTO]org
Diciembre 2008
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...