//Clases anidadas y abstractas.
//Autor Rafael Angel Montero Fernpandez.
//Fecha 14/7/2017.
public class Anidadas
{
public Anidadas()
{
}//Fin del cosntructor
public String getInformacion()
{
FiguraGeometrica fg = new FiguraGeometrica
(12 , 10, 14, 12);
return "Area del objeto " + fg.getArea() + "\nPerimetro del objeto: " + fg.getPerimetro()
+ "\nVolumen del objeto: " + fg.getVolumen();
}//Fin de getInformacion
//___________________________________________________________________________________
//Clases anidadas
abstract class Geometrica
{//Una clase abstracta tambien se puede usar como un origen de datos. Aclarando, un origen de variables en las cuales guardar datos y asi no tener que declararlas.
int vAltura, vBase;
int vLado,vAncho;
public Geometrica()
{
vAltura=0;
vBase=0;
vLado=0;
vAncho=0;
}//Fin del constructor
public abstract int fArea(int altura, int base);
}//Fin del class Geometrica
//--------------------------------------------------------------------------------------
class PerimetroArea extends Geometrica
{
public int fArea(int altura, int base)//metodo heredado de Area
{
vAltura = altura;
vBase = base;
return vAltura * vBase;
}//Fin de fArea
public int fPerimetro(int medida_de_un_lado)//Metodo propio de esta clase
{
vLado = medida_de_un_lado;
return vLado * 4;
}
public int fVolumen (int altura, int base, int ancho)
{
vBase = base;
vAltura = altura;
vAncho = ancho;
return vBase * vAltura * vAncho;
}//Fin de fVolumen
}//Fin del class PerimetroArea
//-----------------------------------------------------------------------------------
interface Getters
{
public void setBase(int nueva_base);
public int getBase();
public void setAltura(int nueva_altura);
public int getAltura();
public void setAncho(int nuevo_ancho);
public int getAncho();
public void setLado(int nuevo_lado);
public int getLado();
public int getArea();
public int getPerimetro();
public int getVolumen();
}//Fin de la interface Getters
//-----------------------------------------------------------------------------------
class FiguraGeometrica extends PerimetroArea implements Getters
{
//Constructor para cargar todo.
public FiguraGeometrica(int nueva_base, int nueva_altura, int nuevo_ancho, int nuevo_lado)
{//Cargando todas las propiedades.
setBase(nueva_base);
setAltura(nueva_altura);
setAncho(nuevo_ancho);
setLado(nuevo_lado);
}//Fin del cosntructor
//Implementaciones de la interface Getters
public int getVolumen()
{
return fVolumen (getAltura(), getBase(), getAncho());
}//Fin de getVolumen
public void setBase(int nueva_base)
{
vBase=nueva_base;
}//Fin de setBase
public int getBase(){ return vBase;}//Fin de getBase
public void setAltura(int nueva_altura)
{
vAltura = nueva_altura;
}//Fin de setAltura
public int getAltura(){return vAltura;}//Fin de getAltura
public void setAncho(int nuevo_ancho)
{
vAncho = nuevo_ancho;
}//Fin de setAncho
public int getAncho(){return vAncho;}//Fin de getAncho
public void setLado(int nuevo_lado)
{
vLado = nuevo_lado;
}//Fin de setLado
public int getLado(){ return vLado;}//Fin de getLado
public int getArea()
{
return fArea(getAltura(), getBase() );
}//Fin de getArea
public int getPerimetro()
{
return fPerimetro (getLado() );
}//Fin de getPerimetro
//*****************************************
//implementaciones de la clase PerimetroArea.
public int fArea(int altura, int base)//metodo heredado de Area
{
return altura * base;
}//Fin de fArea
public int fPerimetro(int medida_de_un_lado)//Metodo propio de esta clase
{
return medida_de_un_lado * 4;
}
public int fVolumen (int altura, int base, int ancho)
{
return altura * base * ancho;
}//Fin de fVolumen
//*******************************************
}//Fin del class FiguraGeometrica
//___________________________________________________________________________________
}//Fin del class Anidadas
Y si ya lo sabes entonces calificame, dime que nivel tengo en Java.