79.- Programar una clase de nombre Llamada que guardará la información relativa a una llamada telefónica. Tendrá las siguientes propiedades y métodos:
Propiedades: (todas ellas privadas)
String numeroTelefono;
Hora comienzoLlamada;
Hora finLlamada;
Métodos de la clase (públicos):
- Método constructor por defecto que no haga nada.
- Método constructor que reciba tres argumentos de tipo (String, Hora, Hora) y se los asigne a las propiedades de la clase.
- Método de nombre escribeHoraComienzo que visualice el valor de la propiedad comienzoLLamada con el formato: 13:25:13.
- Método de nombre escribeHoraFin que visualice el valor de la propiedad finLLamada con el mismo formato que el método anterior.
- Método de nombre duraciónLlamada que devuelva en segundos la duración de la llamada. Si la hora de finalización es inferior a la hora de comienzo de la llamada el método devolverá -1.
- Métodos set y get para todas las propiedades.
package unidad2ejercicio79;
/**
*
* @author Juan
*/
public class Unidad2Ejercicio79 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Llamada llamada1;
Hora horaComienzo;
Hora horaFinal;
horaComienzo = new Hora(22, 15, 0);
horaFinal = new Hora(22, 16, 30);
llamada1 = new Llamada("692567833", horaComienzo, horaFinal);
System.out.println("Hora de comienzo: ");
llamada1.escribeHoraComienzo();
System.out.println("Hora de finalización: ");
llamada1.escribeHoraFin();
System.out.println("Duración de la llamada: ");
System.out.println(llamada1.duracionLlamada());
//modificamos la hora de finalización:
horaFinal.setSegundos(35);
System.out.println("Duración de la llamada: ");
System.out.println(llamada1.duracionLlamada());
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad2ejercicio79;
/**
*Clase para controlar horas
* @author Juan
*/
public class Hora {
private int horas;
private int minutos;
private int segundos;
/**
* Crea un objeto de la clase hora al que le pasamos las horas minutos y segundos, si no son correctos
* inicializa el objeto a todo cero
* @param horas
* parámetro horas debe estar entre 0 y 24
* @param minutos
* se le pasan los minutos que deben estar entre 1 y 60
* @param segundos
* se le pasan los segundos q deben estar entre 1 y 60
*/
public Hora(int horas, int minutos, int segundos) {
if ( horas>=0 && horas<=24 && minutos>=0 && minutos<=60 && segundos >=0 && segundos<=60)
{ this.horas = horas;
this.minutos = minutos;
this.segundos = segundos;
}
else{
this.horas = 0;
this.minutos = 0;
this.segundos = 0;
}
}
/**
*
*/
public Hora() {
this.horas = 0;
this.minutos = 0;
this.segundos = 0;
}
/**
*
* @return
*/
public int getHoras() {
return horas;
}
/**
*
* @param horas
*/
public void setHoras(int horas) {
if ( horas>=0 && horas<=24) this.horas = horas;
else this.horas=0;
}
/**
*
* @return
*/
public int getMinutos() {
return minutos;
}
/**
*
* @param minutos
*/
public void setMinutos(int minutos) {
if ( minutos>=1 && minutos<=60 )
{
this.minutos = minutos;
}
else this.minutos = 0;
}
/**
*
* @return
*/
public int getSegundos() {
return segundos;
}
/**
*
* @param segundos
*/
public void setSegundos(int segundos) {
if ( segundos>=1 && segundos<=60 )
{
this.segundos = segundos;
}
else this.segundos = segundos;
}
/**
* Cambia las propiedades de un objeto de la clase hora al que le pasamos las horas minutos y segundos, si no son correctos
* inicializa el objeto a todo cero
* @param horas
* parámetro horas debe estar entre 0 y 24
* @param minutos
* se le pasan los minutos que deben estar entre 1 y 60
* @param segundos
* se le pasan los segundos q deben estar entre 1 y 60
*/
public void setHora(int horas, int minutos, int segundos)
{
if ( horas>=0 && horas<=24 && minutos>=0 && minutos<=60 && segundos >=0 && segundos<=60)
{ this.horas = horas;
this.minutos = minutos;
this.segundos = segundos;
}
else{
this.horas = 0;
this.minutos = 0;
this.segundos = 0;
}
}
public void visualizaHora(){
System.out.println(horas+":"+minutos+":"+segundos);
}
public int horaEnSegundos(){
return (horas*3600+minutos*60+segundos);
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad2ejercicio79;
/**
*
* @author juan
*/
public class Llamada {
private String numeroTelefono;
private Hora comienzoLlamada;
private Hora finLlamada;
public Llamada() {
}
public Llamada(String numeroTelefono, Hora comienzoLlamada, Hora finLlamada) {
this.numeroTelefono = numeroTelefono.trim();
this.comienzoLlamada = comienzoLlamada;
this.finLlamada = finLlamada;
}
public void setComienzoLlamada(Hora comienzoLlamada) {
this.comienzoLlamada = comienzoLlamada;
}
public void setFinLlamada(Hora finLlamada) {
this.finLlamada = finLlamada;
}
public void escribeHoraComienzo(){
System.out.println(comienzoLlamada.getHoras()+":"+comienzoLlamada.getMinutos()+":"+comienzoLlamada.getSegundos());
}
public void escribeHoraFin(){
finLlamada.visualizaHora();
}
public int duracionLlamada(){
int duracion;
duracion=finLlamada.horaEnSegundos()-comienzoLlamada.horaEnSegundos();
if (duracion<0) duracion =-1;
return duracion;
}
public String getNumeroTelefono() {
return numeroTelefono;
}
public void setNumeroTelefono(String numeroTelefono) {
this.numeroTelefono = numeroTelefono;
}
}
No hay comentarios:
Publicar un comentario