Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
package lab05;
Defina una interface vuelos, con dos constantes, una para máxima velocidad 1500 y otra para
mínima velocidad 1000. Además, el método abstracto cinturones.
package lab05;
Defina una clase Boeing747 que sea hija de aviones e implemente la interfase vuelos. Que tenga
como atributos el peso y el estado del aeropuerto. Además, defina los métodos abstractos
heredados. Para poder despegar el peso debe ser menor a 180 y el aeropuerto debe estar libre.
Para poder aterrizar el aeropuerto debe estar libre y la velocidad menor a 1000. En caso de ser la
velocidad mayor a 1000 se debe indicar que los cinturones deben asegurarse.
import javax.swing.JOptionPane;
return estado;
}
public void setEstado(String estado){
this.estado=estado;
return peso;
this.peso=peso;
return velocidad;
this.velocidad=velocidad;
return 0;
@Override
JOptionPane.showMessageDialog(null,"Abroche su cinturon");
@Override
if(this.peso<180&"libre".equals(this.estado)){
}else{
JOptionPane.showMessageDialog(null,"aun no puede despegar");
@Override
if(this.velocidad>Boeing747.VMAX){
this.cinturones();
if(this.velocidad<Boeing747.VMIN&"libre".equals(this.estado)){
}else{
Defina una clase Hércules que sea hija de aviones e implemente la interfase vuelos. Que tenga
como atributos el peso y el estado del aeropuerto. Además, defina los métodos abstractos
heredados. Para poder despegar el peso debe ser menor a 160 y el aeropuerto debe estar libre.
Para poder aterrizar el aeropuerto debe estar libre y la velocidad menor a 1500. En caso de ser la
velocidad mayor a 1500 se debe indicar que los cinturones deben asegurarse.
package lab05;
import javax.swing.JOptionPane;
return estado;
this.estado=estado;
return peso;
this.peso=peso;
return velocidad;
this.velocidad=velocidad;
return 0;
@Override
JOptionPane.showMessageDialog(null,"Abroche su cinturon");
@Override
public void despegar() {
if(this.peso<160&"libre".equals(this.estado)){
}else{
@Override
if(this.velocidad>Hercules.VMAX){
this.cinturones();
if(this.velocidad<Hercules.VMIN&"libre".equals(this.estado)){
}else{
Para realizar las pruebas defina una clase principal en la que se cree dos aviones, uno Hércules y
otro Boeing; y se pida al usuario que ingrese el peso de cada avión y el estado del aeropuerto. El
usuario determinara si se encuentra volando o por despegar. Si el avión está volando se deberá
ingresar la velocidad. A partir de los datos ingresados hacer el análisis si puede o no despegar o
aterrizar y si se deben o no asegurar los cinturones.
import javax.swing.JOptionPane;
double peso=0;
double velocidad=0;
String estado="",p="";
JOptionPane.showMessageDialog(null,"Boeing 747");
if("tierra".equals(p)){
b.setPeso(peso);
b.setEstado(estado);
b.setVelocidad(velocidad);
b.despegar();
}else{
velocidad=Double.parseDouble(JOptionPane.showInputDialog("ingrese la velocidad"));
b.setVelocidad(velocidad);
b.setEstado(estado);
b.setPeso(peso);
b.aterrizar();
JOptionPane.showMessageDialog(null,"Hercules");
h.setPeso(peso);
h.setEstado(estado);
h.despegar();
}else{
velocidad=Double.parseDouble(JOptionPane.showInputDialog("ingrese la velocidad"));
h.setEstado(estado);
h.setVelocidad(velocidad);
h.aterrizar();
NOTA:
Herencia:
a) En el encabezado se usa la palabra clave interface en lugar de class o abstract class. Por ejemplo
public interface NombreDelInterface {…}
b) Todo método es abstracto y público sin necesidad de declararlo, es decir, no hace falta poner
abstract public porque por defecto todos los métodos son abstract public. Por lo tanto un interface
en Java no implementa ninguno de los métodos que declara: ninguno de sus métodos tiene cuerpo.
d) Un interfaz solo admite campos de tipo “public static final”, es decir, campos de clase, públicos y
constantes. No hace falta incluir las palabras public static final porque todos los campos serán
tratados como si llevaran estas palabras. Recordemos que static equivalía a “de clase” y final a
“constante”. Las interfaces pueden ser un lugar interesante para declarar constantes que van a ser
usadas por diferentes clases en nuestros programas.
e) Una clase puede derivar de un interface de la misma manera en que puede derivar de otra clase.
No obstante, se dice que el interface se implementa (implements), no se extiende (extends) por sus
subclases. Por tanto para declarar la herencia de un interface se usa la palabra clave implements en
lugar de extends.
Una clase puede implementar uno o varios interfaces en Java (se indica con implements
NombreInterface1, NombreInterface2, …etc.), pero sólo puede extender una clase. Implementar
varios interfaces en una sola clase es lo más parecido que tiene Java a la herencia múltiple.
public class Vehiculo implements Actor, ObjetoInerte {…}: define que la clase Vehiculo implementa
a dos interfaces, la interfaz Actor y la interfaz ObjetoInerte, es decir, que un vehículo es a la vez
Actor y ObjetoInerte.
public class Coche extends Vehiculo {…}: define la clase Coche como extensión de la clase Vehiculo.
public class Bicicleta extends Vehiculo {…}: define la clase Bicicleta como extensión de la clase
Vehiculo.
¿Cómo saber si una clase es candidata a ser definida como una interfaz?
a) Si necesitamos algún método con cuerpo ya sabemos que no va a ser una interfaz porque todos
los métodos de una interfaz han de ser abstractos.
b) Si necesitamos que una clase “herede” de más de una superclase, esas superclases son candidatas
a ser interfaces.
c) En algunos casos es igual de viable definir una clase como interfaz que como clase abstracta, pero
puestos en esta situación preferiremos optar por una interfaz porque es más flexible y extensible:
nos va a permitir que una clase implemente varias interfaces (aprovechamos la herencia múltiple
de las interfaces). En cambio, una clase no puede heredar de varias clases.
*/
package cilindrohueco;
import java.util.Scanner;
double radioMayor=0,radioMenor=0,altura=0,VolumenTotal=0;
try {
do{
}while(radioMayor<=0);
} catch (Exception e) {
try {
do{
} catch (Exception e) {
//Leemos la altura
try {
do{
} catch (Exception e)
VolumenTotal=(Cil1.getVolumen()-Cil2.getVolumen());