Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios 2.2.
Objetivo:
● Crear clases
● Crear y sobre cargar constructores (Constructor overloading)
● Crear y sobrecargar métodos
● Pasar objetos como parámetros
● Usar notación punto (.)
● Retornar objetos
● Instanciar clases e invocar métodos
1. Considere el caso de una clase denominada Tiempo, que se orienta a guardar atributos relacionados con
el pronóstico del tiempo. Los atributos requeridos son la temperatura y las condiciones del cielo (que
pueden ser soleado, nevado, nublado o lluvioso)
a. Incluya un constructor por default y un constructor para inicializar todos los atributos.
b. Incluya métodos get (accessors methods), y métodos set (mutators methods)
c. Incluya un método toString
d. La temperatura debe mostrarse tanto en grados Celsius como en grados Fahrenheit (la
temperatura debe estar entre –50 y +150, el valor predeterminado es 70
e. Por default los días son soleados
f. Incluya un método que convierta de Fahrenheit a Celsius [Celsius = (temperatura Fahrenheit - 32)
* 5 / 9]
g. Incluya métodos de alerta para determinar los siguientes casos: Cuando la temperatura es
superior a 32 y está nevando, y cuando la temperatura está por debajo de 32 y está lluvioso.
h. Incluya una clase adicional en la que se muestre la operación de todo lo anterior
i. Incluya el código de cada clase:
Principal
Código
Tiempo
Código
import javax.swing.JOptionPane;
//CONSTRUCTOR
public Tiempo(double TempF, String Condiciones) {
this.TempF = TempF;
this.Condiciones = Condiciones;
}
public Tiempo() {
this.TempF = 70;
this.Condiciones = "Soleado";
}
//METODOS SET
public void setTempF(double TempF) {
this.TempF = TempF;
}
//METODOS GET
public double getTempF() {
return TempF;
}
//ToString
Nombre: Rosas Flores Cesar Elias
@Override
public String toString() {
return "TIEMPO\nTemperatura: (" + TempF + "°F) ("+getTempC(TempF)+"°C)"+
"\nCondiciones: " + Condiciones +
"\nAlerta: " + getAlerta();
}
}
Nombre: Rosas Flores Cesar Elias
2. Escriba una clase para un radio, el radio debe tener el estado de encendido o apagado, y en el caso de
encendido debe indicarse la estación que está sintonizando, en el caso de apagado la estación que
sintoniza debe estar en cero (0). Cuando exista un cambio de estado, despliega el estado y su
correspondiente figura.
a. Incorpore un constructor con parámetros que permita establecer el estado de encendido y una
estación inicial.
b. Incorpore un constructor sin parámetros (argumentos) donde el estado inicial sea encendido y la
estación inicial sea uno (01).
c. Cuando visualice el estado del radio utilice las siguientes representaciones.
encendido apagado
╔═══╗ ♪ ╔═══╗
║███║ ♫ ║ ║
║ (●) ♫ ║ (●)
╚═══╝♪♪ ╚═══╝
ENCENDIDO APAGADO
ESTACIÓN: 3.1416 AM ESTACIÓN:0
Principal
Código
System.out.println("_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-");
Radio
Código
//CONSTRUCTOR
public Radio(String estado, String estacion) {
this.estado = estado;
this.estacion = estacion;
setFigura();
}
public Radio() {
this.estado = "ENCENDIDO";
this.estacion = "01";
setFigura();
}
//METODOS SET
public void setEstado(String estado) {
this.estado = estado;
}
if(getEstado().equals("ENCENDIDO")){
this.figura = " .\n"+
" |\n"+
" | bla bla bla\n"+
" ________|\n"+
"|==+===== O|\n"+
"|(%)[oo](%)|\n"+
"`----------'";
}else if(getEstado().equals("APAGADO")){
this.figura = " .\n"+
" |\n"+
" |\n"+
" ________|\n"+
"|==+===== O|\n"+
"|(%)[oo](%)|\n"+
"`----------'";
}
}
//METODOS GET
public String getEstado() {
return estado;
}
}else{
System.out.println("La radio ya se encuentra encendida");
}
@Override
public String toString() {
return figura+"\n"+ estado + "\nESTACION: " + estacion;
}
}
Nombre: Rosas Flores Cesar Elias
3. Considere el caso de una empresa que gestiona los alimentos y ambientación para eventos. Se desea
que contemple dos clases fundamentales (Fecha, Requerimientos)
a. Fecha. La clase fecha está compuesta por día de la semana (lunes, martes, miércoles, etc.), mes,
día y año. Así como la hora de inicio y final del evento. Diseñe la clase, constructores por default y
con parámetros, así como los métodos getter, setter y métodos adicionales que considere
necesarios.
b. Requerimientos. La clase Requerimientos se utiliza para almacenar la temática del evento, el tipo
(aniversario, cumpleaños, boda, bautizo, reunión, etc), y la cantidad de personas asignadas por la
empresa a la atención del evento. Diseñe la clase, constructores por default y con parámetros, así
como los métodos getter, setter y métodos adicionales que considere necesarios.
c. Evento. La clase evento contiene dos campos de clase, uno de tipo Fecha y otro de tipo
Requerimientos. Considere los constructores y métodos necesarios para esta clase.
d. Como parte del diseño se requiere una clase de tipo DatosEvento, que gestione la creación de
objetos de tipo Evento, así como la lectura de los campos correspondientes mediante cajas de
texto.
e. Se requiere una clase final que contenga el método main() donde se demuestre la funcionalidad
de las clases anteriores.
f. Incluya el código de cada clase:
Principal
Código
}
}
Eventos
Código
import javax.swing.JOptionPane;
public Evento(){
this.datosEvento = new DatosEvento();
}
DatosEvento
Código
import javax.swing.JOptionPane;
public DatosEvento(){
this.fecha = new Fecha();
this.requerimientos = new Requerimientos();
}
fecha.setDia(Integer.parseInt(JOptionPane.showInputDialog(fecha.getMsg_dia())));
fecha.setAño(Integer.parseInt(JOptionPane.showInputDialog(fecha.getMsg_año())));
fecha.setInicio(Integer.parseInt(JOptionPane.showInputDialog(fecha.getMsg_inicio())));
fecha.setFin(Integer.parseInt(JOptionPane.showInputDialog(fecha.getMsg_fin())));
fecha.showFecha(fecha);
return this.fecha;
}
requerimientos.setTipo(JOptionPane.showInputDialog(requerimientos.getMsg_tipo()));
requerimientos.setCantidad(Integer.parseInt(JOptionPane.showInputDialog(requerimientos.
getMsg_cantidad())));
requerimientos.showRequerimientos(requerimientos);
return this.requerimientos;
}
Fecha
Código
import javax.swing.JOptionPane;
public Fecha() {
this.diaSem = "";
this.mes = "";
this.dia = 0;
this.año = 0;
}
//METODOS SET
public void setDiaSem(String diaSem) {
this.diaSem = diaSem;
}
//METODOS GET
public String getDiaSem() {
return diaSem;
}
Requerimientos
Código
import javax.swing.JOptionPane;
public Requerimientos() {
this.tipo = "";
this.cantidad = 0;
}
//METODOS SET
public void setTipo(String tipo) {
this.tipo = tipo;
}
//METODOS GET
public String getTipo() {
return tipo;
}
@Override
public String toString() {
return "* * *R E Q U E R I M I E N T O S* * *\nTipo de evento: " + tipo +
"\nPersonal requerido: " + cantidad;
}
}
Nombre: Rosas Flores Cesar Elias
4. Una empresa que atiende mascotas requiere guardar los siguientes datos de dos clases fundamentales:
a. Requiere dos clases separadas Mascota y Cliente, para almacenar de forma separada los datos
del cliente y su mascota.
Mascota Cliente
● idmascota ● nombre
● name ● apellidos
● animal ● cel
● email
b. Consulta. La clase consulta cuenta con dos campos de clase, un campo de tipo Mascota y un
campo de Tipo Cliente. Considere constructores y métodos necesarios.
c. Como parte del diseño se requiere implementar en una clase DatosConsulta que gestione la
creación de objetos de tipo Consulta, así como la lectura de los campos correspondientes
mediante cajas de texto.
d. Se requiere una clase final que contenga el método main() donde se demuestre la funcionalidad
de las clases anteriores.
e. Incluya el código de cada clase:
Principal
Código
Consulta
Código
public Consulta(){
this.datosConsulta = new DatosConsulta();
}
DatosConsulta
Nombre: Rosas Flores Cesar Elias
Código
import javax.swing.JOptionPane;
public class DatosConsulta {
Mascota mascota;
Cliente cliente;
//Consulta
public DatosConsulta(){
this.mascota = new Mascota();
this.cliente = new Cliente();
}
mascota.setNombreMascota(JOptionPane.showInputDialog(mascota.getMsg_NombreMascota()));
mascota.setAnimal(JOptionPane.showInputDialog(mascota.getMsg_Animal()));
mascota.showMascota(mascota);
return this.mascota;
}
cliente.setNombreCliente(JOptionPane.showInputDialog(cliente.getMsg_NombreCliente()));
cliente.setApellidosCliente(JOptionPane.showInputDialog(cliente.getMsg_ApellidoCliente(
)));
cliente.setCelCliente(JOptionPane.showInputDialog(cliente.getMsg_CelCliente()));
cliente.setEmailCliente(JOptionPane.showInputDialog(cliente.getMsg_EmailCliente()));
cliente.showCliente(cliente);
return this.cliente;
}
Cliente
Código
import javax.swing.JOptionPane;
//CONSTRUCTOR
Cliente(){
this.nombreCliente = "";
this.apellidosCliente = "";
this.celCliente = "";
this.emailCliente = "";
}
Nombre: Rosas Flores Cesar Elias
//METODOS SET
public void setNombreCliente(String nombreCliente) {
this.nombreCliente = nombreCliente;
}
//METODOS GET
public String getNombreCliente() {
return nombreCliente;
}
JOptionPane.showMessageDialog(null, cliente.toString());
}
Mascota
Código
import javax.swing.JOptionPane;
//CONSTRUCTOR
Mascota(){
this.idmascota = "";
this.nombreMascota = "";
this.animal = "";
}
//METODOS SET
public void setIdmascota(String idmascota) {
this.idmascota = idmascota;
}
//METODOS GET
public String getIdmascota() {
return idmascota;
}