Title: AgregacinComposicin
1Bertolt Brecht (dramaturgo y poeta alemán,
1898-1956) "Primero se llevaron a los
comunistas, pero a mi no me importó porque yo no
era comunista. Enseguida se llevaron a unos
obreros, pero a mi no me importó porque yo
tampoco era obrero. Después detuvieron a los
sindicalistas, pero a mi no me importó porque yo
no soy sindicalista. Luego apresaron a unos
curas, pero como yo no soy religioso tampoco me
importó. Ahora me llevan a mí pero ya es
demasiado tarde".
2Generalización
- Cómo lo implementamos en JAVA?
3Generalización
- Supongamos la clase empleado de la universidad
Empleado
Profesor
Adminis- trativo
Obrero
Autorida- des
4Generalización
Atributos cedula nombre y apellido sueldo
por hora Métodos constructor obtener cedula
obtener nombre obtener sueldo por hora
modificar sueldo
Empleado
5Generalización
- Implementando la clase empleado
class CEmp protected float suelhor protected
String nomape protected int cedula public
CEmp(float sue, String nom, int ced)
suelhorsue nomapenom cedulaced
public CEmp(String nom, int ced)
nomapenom cedulaced
public int getcedula() return cedula
public String getnombre() return
nomape public float getsuelhor()
return suelhor public void
setsuelhor(float sue) suelhorsue
6Generalización
Atributos número de materias número de
horas dependencia Métodos constructor
obtener horas obtener materias obtener
dependencia calcular sueldo a pagar
Profesor
7Generalización
- Para indicar que la clase profesor es subclase de
la clase empleado
Empleado
Profesor
class CProfesor extends CEmpleado
8Generalización
- Para invocar al constructor de la super clase,
debemos contemplar los siguiente - Java invoca automáticamente al constructor de la
superclase, al crear un objeto de la subclase, la
llamada se efectúa sin parámetros. - Si no existe un constructor de la superclase sin
parámetros, se debe especificar la palabra super
junto con los parámetros del constructor que se
desee invocar. - En nuestro ejemplo no existe en CEmpleado un
constructor definido sin parámetros, por lo
tanto, debemos invocar al constructor con los
parámetros correspondientes desde el constructor
de la subclase. - super(sue,nom,ced)
9Generalización
- Implementando la clase profesor
public int gethoras() return nohor
public int getmat() return nomat public
String getdep() return dependencia public
void setmat(int mat) nomatmat public
void sethor(int hor) nohorhor public
float getsuelpagar() return nohorsuelhor
public class CProf extends CEmp protected
int nomat protected int nohor protected
String dependencia public CProf(String nom,
int ced, int m, int n, String dep, float sue)
super(sue,nom,ced) nomat m
nohor n dependencia dep public
CProf(String nom, int ced,String dep)
super(0,nom,ced) dependenciadep
nomat0 nohor0
10Generalización
class Univer public static void main(String
args) CProf Betty CProf Carlo
CProf Elvira Betty new CProf("Betty del
moral",785747,2,12,"Programacion",80000.00f)
Elvira new CProf("Elvira Navas",685422,2,12,"Pro
gramacion",100000.00f) Carlo new
CProf("Carlo Magurno",542635,"Programacion")
Carlo.setmat(3) Carlo.sethor(16)
Carlo.setsuelhor(60000f) System.out.println(Bet
ty.getcedula()Betty.getnombre()Betty.getsuelpaga
r()) System.out.println(Elvira.getcedula
()Elvira.getnombre()Elvira.getsuelpagar()) Sys
tem.out.println(Carlo.getcedula()Carlo.getnombre(
)Carlo.getsuelpagar())
11Generalización
En resumen, los conceptos vistos fueron
- Generalización implementada en Java
12Ejercicios
- Implementar las clases rectángulo, cuadrado y
rombo a partir de la clase figuras geométricas.
Deberán poder calcular el perímetro, el área de
cada figura y descubrir si dos figuras del mismo
tipo son iguales.
13Generalización
Bibliografía
- Java 2 Manual de Usuario y tutorial, Alfaomega,
Agustín Froufe.