Está en la página 1de 5

Herencia, Polimorfismo, Arraylist , Jframe, Jtable

Primero: Agregar un nuevo proyecto llamado polimorfismo

package polimorfismo;

public class Polimorfismo {

public static void main(String[] args) {


// TODO code application logic here

Segundo: Agregar una clase java llamada Figura

Atributos base y altura, definidos como final (no permitirá crear los sets de los atributos)
Constructor con 2 argumentos
Crear los gets de los atributos
Y crear 2 métodos polimórficos para calcular la área y perímetro que aunque no serán resultas por la clase
base ( Figura), servirán para que las clases derivadas la resuelvan. Por lo tanto

package polimorfismo;

public class Figura {


private final int base;
private final int altura;

public Figura(int base, int altura) {


this.base = base;
this.altura = altura;
}
public int getBase() {
return base;
}

public int getAltura() {


return altura;
}

public double area(){


return 0;
}

public double perimetro(){


return 0;
}

}
Tercero: Agregar una clase java llamada Rectangulo que sea derivada de la clase Figura

No es adecuado dejar que java nos ubique un constructor sin argumento por defecto al ejecutar, debido a
que se debe agregar el constructor de la clase base que si tiene parámetros.
Al crear el constructor emplear super
Y sobrescribir los métodos áreas y perímetro, ubicando las verdaderas operaciones que la clase Figura no
pudo resolver (existen tantas figuras y cada una tiene sus propias fórmulas de cálculos).

package polimorfismo;
public class Rectangulo extends Figura{

public Rectangulo(int base, int altura) {


super(base, altura);
}
@Override
public double area() {
return (getBase()*getAltura());
}
@Override
public double perimetro() {
return (2*getBase()+2*getAltura());
}
}

Cuarto: Agregar una clase java llamada Triangulo que sea derivada de la clase Figura

No es adecuado dejar que java nos ubique un constructor sin argumento por defecto al ejecutar, debido a
que se debe agregar el constructor de la clase base que si tiene parámetros.
Al crear el constructor emplear super
Y sobrescribir los métodos áreas y perímetro, ubicando las verdaderas operaciones que la clase Figura no
pudo resolver (existen tantas figuras y cada una tiene sus propias fórmulas de cálculos).

package polimorfismo;
public class Triangulo extends Figura{
public Triangulo(int base, int altura) {
super(base, altura);
}
public double hipotenusa() {
return Math.sqrt(Math.pow(getBase(), 2)+Math.pow(getAltura(), 2));
}
@Override
public double area() {
return (getBase()*getAltura())/2;
}
@Override
public double perimetro() {
return getBase()+getAltura()+hipotenusa();
}
}
Quinto: Agregar un JFrame Form llamada frmfigura , este automática mente será derivado de JFrame

Agregar objetos a esta interfaz:


Jlabel

Cambiar la etiqueta

Cambiar el nombre del objeto label


Codificar eventos para programar el botón

Agregar un ArrayList de Figura de forma global de la clase

package polimorfismo;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class FrmFigura extends javax.swing.JFrame {
ArrayList<Figura> list=new ArrayList<>();
private javax.swing.JButton btnLimpiar;
private javax.swing.JButton btnRectangulo;
private javax.swing.JButton btnTriangulo;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jtFigura;
private javax.swing.JLabel lblAltura;
private javax.swing.JLabel lblBase;
private javax.swing.JLabel lblFigura;
private javax.swing.JTextField txtAltura;
private javax.swing.JTextField txtBase;

// <editor-fold defaultstate="collapsed" desc="Generated Code">


private void initComponents()…
Programar cada botón, con l intensión de que la lista registre el tipo de figura
ingresado y use el método polimórfico para calcular según cual se la figura
asignada.

private void btnTrianguloActionPerformed(java.awt.event.ActionEvent evt) {


Figura Objetotriangulo=new Triangulo(Integer.parseInt(txtBase.getText()), Integer.parseInt(txtAltura.getText()));
list.add(Objetotriangulo);
JOptionPane.showMessageDialog(null, "Los datos ingresados exitosamente");
this.mostrar();
}

private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {


this.Limpiar();
}

private void btnRectanguloActionPerformed(java.awt.event.ActionEvent evt) {


Figura objetorectangulo=new Rectangulo(Integer.parseInt(txtBase.getText()), Integer.parseInt(txtAltura.getText()));
list.add(objetorectangulo);
JOptionPane.showMessageDialog(null, "Los datos ingresados exitosamente");
this.mostrar();
}

private void Limpiar(){


txtBase.setText("");
txtAltura.setText("");
}

private void mostrar(){


String[][] matriz = new String[list.size()][4];
for (int i = 0; i < list.size(); i++) {
matriz[i][0] = "" + list.get(i).getBase();
matriz[i][1] = "" + list.get(i).getAltura();
matriz[i][2] = "" + list.get(i).area();
matriz[i][3] = "" + list.get(i).perimetro();
}

jtFigura.setModel(new javax.swing.table.DefaultTableModel(
matriz,
new String[]{
"Base", "Altura", "Area", "Perimetro"
}
));

Sexto: en el main de la clase polimorfismo

package polimorfismo;

public class Polimorfismo {

public static void main(String[] args) {


FrmFigura FF=new FrmFigura();
FF.setVisible(true);
}

También podría gustarte