Archivo Radio

radio

 

/*
 * This code is sample code, provided as-is, and we make no
 * warranties as to its correctness or suitability for
 * any purpose.
 *
 * We hope that it's useful to you. Enjoy.
 * Copyright 2004-13 LearningPatterns Inc.
 */

/*
 * Lab - Interfaces
 *
 * This class defines a Radio. It will implement Volume easily
 *
 *
 * This class performs no data validation; however, it
 * mutes/unmutes appropriately, i.e., can't mute a muted
 * Radio
 */

package com.entertainment;

// TODO add in declaration for implementing Volume
public class Radio

{
 // INSTANCE VARIABLES
 private int volume; // the volume

 // for muting behavior
 private int oldVolume;
 private boolean isMuted;

 // CONSTRUCTORS
 public Radio()
 {
 super();
 }

 public Radio(int volumeIn)
 {
 super();
 this.setVolume(volumeIn);
 }


 // ACCESSOR METHODS
 // from interface Volume
 public void setVolume(int volumeIn)
 {
 // delegate to contained VolumeControl object
 volume = volumeIn;
 }

/* TODO - Uncomment this method so Radio will compile after implementing the interface 
 // from interface IVolume
 public int getVolume()
 {
 return volume;
 }
*/

 // from interface IVolume
 // BEHAVIORAL METHODS
 public void mute()
 {
 if (!this.isMuted()) // not currently muted
 {
 // store current volume in oldVolume
 oldVolume = volume;
 
 // set volume to zero
 this.setVolume(0);
 }
 else // currently muted
 {
 // restore volume from oldVolume value
 this.setVolume(oldVolume);
 }
 
 // toggle muted flag
 isMuted = !isMuted;
 }
 

 // from interface IVolume
 public boolean isMuted()
 {
 // delegate to contained VolumeControl object
 return isMuted;
 }


 // returns a string representation of this class instance
 @Override
 public String toString()
 {
 // this method uses the "ternary" (three terms) operator
 // (expression ? true-value : false-value)
 // it's just a very compact if-else statement

 return "Radio: volume=" +
 (!this.isMuted() ? String.valueOf(volume) : "<muted>");
 }
}