✒️ABAP POO La Herencia
ABAP POO La Herencia
Bien, hice el ejercicio un poco diferente.
Tomé la definición previa de Vehiculo que ya habiamos hecho y le cargué en un INCLUDE y le agregué los componentes que indicaba el ejercicio.
E hice el programa con lo solicitado, con algunos agregados.
SPAN { font-family: "Courier New"; color: #000000; background: #FFFFFF; } .L0S31 { font-style: italic; color: #808080; } .L0S55 { color: #800080; } Los KM del camion los pude obtener ya sea por un método que hice para que los devolviera o bien llamando directamente al atributo KM de la clase. Les pongo los 2 ejemplos.
KM_CAMION = obtener_KM( ). " No hace falta referencia para llamar metodo de la clase.
KM_CAMION = KM. " También se puede obtener directamente el atributo de la clase.
Lo activé y funciona perfectamente.
INCLUDE Z_CLASS_VEHICULO
SPAN {
font-family: "Courier New";
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
*&---------------------------------------------------------------------*
*& Include Z_CLASS_VEHICULO
*&---------------------------------------------------------------------*
CLASS Vehiculo DEFINITION.
PUBLIC SECTION.
DATA: color Type String,
marca Type String,
modelo Type String,
velocidad Type String,
anio_fabricacion Type String,
Km Type I.
CLASS-DATA: nro_vehiculos Type I.
METHODS: Constructor,
asignar_anio_fabricacion
IMPORTING a_anio_fabricacion Type String,
disminuir_velocidad
IMPORTING a_velocidad Type String,
asignar_tipo
IMPORTING a_marca Type String
a_modelo Type String,
asignar_km_iniciales
IMPORTING pKM Type I,
incrementar_km,
Obtener_KM
RETURNING VALUE(pKM) Type I.
CLASS-METHODS: obtener_nro_vehiculos
RETURNING VALUE(nro) Type I.
ENDCLASS.
CLASS Vehiculo IMPLEMENTATION.
METHOD CONSTRUCTOR.
color = 'Verde'.
marca = 'Renault'.
modelo = '12'.
ENDMETHOD.
METHOD asignar_anio_fabricacion.
anio_fabricacion = a_anio_fabricacion.
ENDMETHOD.
METHOD disminuir_velocidad.
velocidad = a_velocidad.
ENDMETHOD.
METHOD asignar_tipo.
marca = a_marca.
modelo = a_modelo.
ENDMETHOD.
METHOD obtener_nro_vehiculos.
nro = nro_vehiculos.
ENDMETHOD.
METHOD asignar_km_iniciales.
KM = pKM.
ENDMETHOD.
METHOD incrementar_km.
KM = KM 1.
ENDMETHOD.
METHOD Obtener_KM.
pKM = KM.
ENDMETHOD.
ENDCLASS.
PROGRAMA Z
SPAN {
font-family: "Courier New";
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}
REPORT ZPRUEBA_HERENCIA_RQ48L.
INCLUDE z_class_vehiculo.
CLASS Camion DEFINITION INHERITING FROM Vehiculo.
PUBLIC SECTION.
DATA: Km_Camion Type I.
METHODS: Ver_KM.
ENDCLASS.
CLASS Camion IMPLEMENTATION.
METHOD Ver_KM.
KM_CAMION = obtener_KM( ). " No hace falta referencia.
Write: / 'KMs Recorridos:',KM_Camion.
ENDMETHOD.
ENDCLASS.
Data:
oCamion Type REF TO Camion,
KM_Inic Type I Value 5.
START-OF-SELECTION.
CREATE OBJECT oCamion.
" Indico Modelo
oCamion->asignar_tipo( a_marca = 'Mercedes Benz'
a_modelo = '1114' ).
" Km Iniciales
oCamion->asignar_km_iniciales( pKM = KM_Inic ).
Do 20 times.
oCamion->incrementar_km( ).
Enddo.
oCamion->Ver_KM( ).
 
 
 
Sobre el autor
Publicación académica de Alfredo César, en su ámbito de estudios para el Máster ABAP POO.
Alfredo César
Profesión: Analista de Sistemas - Argentina - Legajo: RQ48L
✒️Autor de: 33 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Alfredo César