Abstracciones de Control
Abstracciones de Control
Abstracciones de Control
GRUPO:
3
CARRERA:
ING. EN TICS
ABSTRACCIONES DE CONTROL
LOS PRIMEROS LENGUAJES DE PROGRAMACIN DE ALTO NIVEL INTRODUJERON LAS
ESTRUCTURAS DE CONTROL: SENTENCIAS DE BIFURCACIN (IF) Y BUCLES (FOR, WHILE,
DO-LOOP, ETC.).
LAS ESTRUCTURAS DE CONTROL DESCRIBEN EL ORDEN EN EL QUE SE EJECUTAN LAS
SENTENCIAS O GRUPOS DE SENTENCIA (UNIDADES DE PROGRAMA). LOS SUBPROGRAMAS
CONSTITUYEN UNA HERRAMIENTA POTENTE DE ABSTRACCIN YA QUE, DURANTE SU
IMPLEMENTACIN, EL PROGRAMADOR DESCRIBE EN DETALLE CMO FUNCIONAN.
CUANDO EL SUBPROGRAMA SE LLAMA, BASTA CON CONOCER LO QUE HACE Y NO CMO LO
HACE. LOS SUBPROGRAMAS SON LOS MECANISMOS MS AMPLIAMENTE UTILIZADOS
PARA REUTILIZAR CDIGO, A TRAVS DE COLECCIONES DE SUBPROGRAMAS EN
BIBLIOTECAS.
LOS LENGUAJES DE PROGRAMACIN SON LAS HERRAMIENTAS MEDIANTE LAS CUALES LOS DISEADORES DE LENGUAJES
PUEDEN IMPLEMENTAR LOS MODELOS ABSTRACTOS.
LA ABSTRACCIN OFRECIDA POR LOS LENGUAJES DE PROGRAMACIN SE PUEDE DIVIDIR EN DOS CATEGORAS: ABSTRACCIN
DE DATOS (PERTENECIENTE A LOS DATOS) Y ABSTRACCIN DE CONTROL (PERTENECIENTE A LAS ESTRUCTURAS DE CONTROL).
ES ESENCIAL PARA DISEAR SOFTWARE MODULAR Y FIABLE LA ABSTRACCIN PROCEDIMENTAL QUE SE BASA EN LA UTILIZACIN DE
PROCEDIMIENTOS O FUNCIONES SIN PREOCUPARSE DE CMO SE IMPLEMENTAN.
LOS SUBPROGRAMAS PROPORCIONAN OCULTACIN DE LA INFORMACIN. LAS VARIABLES LOCALES Y CUALQUIER OTRA
DEFINICIN LOCAL SE ENCAPSULAN EN EL SUBPROGRAMA, OCULTNDOSE DE FORMA QUE NO PUEDEN UTILIZARSE FUERA DEL
SUBPROGRAMA. POR CONSIGUIENTE, EL PROGRAMADOR NO TIENE QUE PREOCUPARSE SOBRE LAS DEFINICIONES LOCALES.
LOS PARMETROS DE LOS SUBPROGRAMAS, JUNTO CON LA OCULTACIN DE LA INFORMACIN ANTERIOR, PERMITEN CREAR
SUBPROGRAMAS QUE CONSTITUYEN ENTIDADES DE SOFTWARE PROPIAS. LOS DETALLES LOCALES DE LA IMPLEMENTACIN PUEDE
ESTAR OCULTOS, MIENTRAS QUE LOS PARMETROS SE PUEDEN UTILIZAR PARA ESTABLECER LA INTERFAZ PBLICA.
LA ABSTRACCIN DE DATOS
DATOS.
UN TIPO ABSTRACTO DE DATOS ES UN MODELO (ESTRUCTURA) CON UN NMERO DE OPERACIONES QUE AFECTAN A ESE MODELO. LOS TIPOS
ABSTRACTOS DE DATOS PROPORCIONAN NUMEROSOS BENEFICIOS AL PROGRAMADOR, QUE SE PUEDEN RESUMIR EN LOS SIGUIENTES:
1. PERMITEN UNA MEJOR CONCEPTUALIZACIN Y MODELIZACIN DEL MUNDO REAL. MEJORAN LA REPRESENTACIN Y LA COMPRENSIBILIDAD.
CLARIFICAN LOS OBJETOS BASADOS EN ESTRUCTURAS Y COMPORTAMIENTOS COMUNES.
2. MEJORAN LA ROBUSTEZ DEL SISTEMA. SI HAY CARACTERSTICAS SUBYACENTES EN LOS LENGUAJES, PERMITEN LA ESPECIFICACIN DEL TIPO
DE CADA VARIABLE. LOS TIPOS ABSTRACTOS DE DATOS PERMITEN LA COMPROBACIN DE TIPOS PARA EVITAR ERRORES DE TIPO EN TIEMPO DE
EJECUCIN.
3. MEJORAN EL RENDIMIENTO (PRESTACIONES). PARA SISTEMAS TIPEADOS (TIPIFICADOS), EL CONOCIMIENTO DE LOS OBJETOS PERMITE LA
OPTIMIZACIN DE TIEMPO DE COMPILACIN.
5. PERMITEN LA EXTENSIBILIDAD DEL SISTEMA. LOS COMPONENTES DE SOFTWARE REUTILIZABLES SON MS FCILES DE CREAR Y MANTENER.
6. RECOGEN MEJOR LA SEMNTICA DEL TIPO. LOS TIPOS ABSTRACTOS DE DATOS AGRUPAN O LOCALIZAN LAS OPERACIONES Y LA
REPRESENTACIN DE ATRIBUTOS.
UN PROGRAMA QUE MANEJA UN TAD LO HACE TENIENDO EN CUENTA LAS OPERACIONES O LA FUNCIONALIDAD
QUE TIENE, SIN INTERESARSE POR LA REPRESENTACIN FSICA DE LOS DATOS. ES DECIR, LOS USUARIOS DE UN
TAD SE COMUNICAN CON STE A PARTIR DE LA INTERFAZ QUE OFRECE EL TAD MEDIANTE FUNCIONES DE ACCESO.
PODRA CAMBIARSE LA IMPLEMENTACIN DEL TIPO DE DATO SIN AFECTAR AL PROGRAMA QUE USA EL TAD YA
QUE PARA EL PROGRAMA EST OCULTA.
MODULA-2 MDULO
ADA PAQUETE
C++ CLASE
JAVA CLASE
EN ESTOS LENGUAJES SE
DETALLAR EN LOS DATOS DEL TIPO LOS VALORES QUE PUEDEN TOMAR.
DESCRIBIR LAS OPERACIONES RELACIONNDOLAS CON LOS DATOS.
ESPECIFICACIN INFORMAL DE UN
TAD
A CONTINUACIN CADA UNA DE LAS OPERACIONES CON SUS ARGUMENTOS, Y UNA DESCRIPCIN FUNCIONAL EN LENGUAJE NATURAL, CON
ESTE FORMATO:
PERTENECE(CONJUNTO, ELEMENTO). VERIFICA SI EL ELEMENTO FORMA PARTE DEL CONJUNTO, EN CUYO CASO DEVUELVE CIERTO.
COMO EJEMPLO, SE VA A ESPECIFICAR EL TIPO ABSTRACTO DE DATOS CONJUNTO:TAD CONJUNTO(COLECCIN DE ELEMENTOS SIN
DUPLICIDADES, PUEDEN ESTAR EN CUALQUIER ORDEN, SE USA PARA REPRESENTAR LOS CONJUNTOS MATEMTICOS CON SUS
OPERACIONES). OPERACIONES, SE PONEN LAS OPERACIONES BSICAS SOBRE CONJUNTOS:
AADIR(CONJUNTO, ELEMENTO). COMPRUEBA SI EL ELEMENTO FORMA PARTE DEL CONJUNTO; EN CASO NEGATIVO, ES AADIDO. LA
OPERACIN MODIFICA AL CONJUNTO.
CONJUNTO.
EL ESQUEMA QUE SIGUE CONSTA DE UNA CABECERA CON EL NOMBRE DEL TAD Y LOS DATOS: TAD NOMBRE
DEL TIPO (VALORES QUE TOMA LOS DATOS DEL TIPO)
SINTAXIS
OPERACIN(TIPO ARGUMENTO, ...) -> TIPO RESULTADO
A CONTINUACIN SE EXPLICA LA SEMNTICA DE LAS OPERACIONES. STA SE CONSTRUYE DANDO UNOS
VALORES PARTICULARES A LOS ARGUMENTOS DE LAS OPERACIONES, A PARTIR DE LOS QUE SE OBTIENE
UNA EXPRESIN RESULTADO. STE PUEDE TENER REFERENCIAS A TIPOS YA DEFINIDOS, VALORES DE TIPO
LGICO O REFERENCIAS A OTRAS OPERACIONES DEL PROPIO TAD. SEMNTICA OPERACIN(VALORES
PARTICULARES ARGUMENTOS) EXPRESIN RESULTADO AL HACER UNA ESPECIFICACIN FORMAL,
SIEMPRE HAY OPERACIONES DEFINIDAS POR S MISMAS QUE
CLASES Y OBJETOS
EL PARADIGMA ORIENTADO A OBJETOS NACI EN 1969 DE LA MANO DEL DOCTOR NORUEGO KRISTIN
NYGAARD, QUE AL INTENTAR ESCRIBIR UN PROGRAMA DE COMPUTADORA QUE DESCRIBIERA EL
MOVIMIENTO DE LOS BARCOS A TRAVS DE UN FIORDO, DESCUBRI QUE ERA MUY DIFCIL SIMULAR LAS
MAREAS, LOS MOVIMIENTOS DE LOS BARCOS Y LAS FORMAS DE LA LNEA DE LA COSTA CON LOS
MTODOS DE PROGRAMACIN EXISTENTES EN ESE MOMENTO. DESCUBRI QUE LOS ELEMENTOS DEL
ENTORNO QUE TRATABA DE MODELAR BARCOS, MAREAS Y LNEA DE LA COSTA DE LOS FIORDOS Y LAS
ACCIONES QUE CADA ELEMENTO PODA EJECUTAR MANTENAN UNAS RELACIONES QUE ERAN MS
FCILES DE MANEJAR.
QU SON OBJETOS?
EN
EL MUNDO REAL, LAS PERSONAS IDENTIFICAN LOS OBJETOS COMO COSAS QUE PUEDEN SER
PERCIBIDAS POR LOS CINCO SENTIDOS. LOS OBJETOS TIENEN PROPIEDADES ESPECFICAS, COMO
POSICIN, TAMAO, COLOR, FORMA, TEXTURA, ETC. QUE DEFINEN SU ESTADO. LOS OBJETOS TAMBIN
POSEEN CIERTOS COMPORTAMIENTOS QUE LOS HACEN DIFERENTES DE OTROS OBJETOS.
UN MENSAJE ES UNA INSTRUCCIN QUE SE ENVA A UN OBJETO Y QUE, CUANDO SE RECIBE, EJECUTA SUS
ACCIONES. UN MENSAJE INCLUYE UN IDENTIFICADOR QUE CONTIENE LA ACCIN QUE HA DE EJECUTAR EL
OBJETO JUNTO CON LOS DATOS QUE NECESITA EL OBJETO PARA REALIZAR SU TRABAJO. LOS MENSAJES,
POR CONSIGUIENTE, FORMAN UNA VENTANA DEL OBJETO AL MUNDO EXTERIOR.
QU SON CLASES?
LAS CLASES SON LOS BLOQUES DE CONSTRUCCIN FUNDAMENTALES DE LOS PROGRAMAS ORIENTADOS A
OBJETOS. BOOCH DEFINE UNA CLASE COMO UN CONJUNTO DE OBJETOS QUE COMPARTEN UNA
ESTRUCTURA Y UN COMPORTAMIENTO COMUNES.
DECLARACIN DE UN A CLASE
LA DEFINICIN DE UNA CLASE SIGNIFICA QUE SE DEBE DAR A LA MISMA UN NOMBRE, DAR NOMBRE
TAMBIN A LOS ELEMENTOS QUE ALMACENAN SUS DATOS Y DESCRIBIR LOS MTODOS QUE REALIZARN
LAS ACCIONES CONSIDERADAS EN LOS OBJETOS.
UN PRINCIPIO FUNDAMENTAL EN PROGRAMACIN ORIENTADA A OBJETOS ES LA OCULTACIN DE LA INFORMACIN, QUE SIGNIFICA QUE A DETERMINADOS DATOS DEL INTERIOR DE UNA CLASE
NO SE PUEDE ACCEDER POR MTODOS EXTERNOS A ELLA. EL MECANISMO PRINCIPAL PARA OCULTAR DATOS ES PONERLOS EN UNA CLASE Y HACERLOS PRIVADOS. A LOS DATOS O MTODOS
PRIVADOS SLO SE PUEDE ACCEDER DESDE DENTRO DE LA CLASE. POR EL CONTRARIO, LOS DATOS O MTODOS PBLICOS SON ACCESIBLES DESDE EL EXTERIOR DE LA CLASE.
FORMATO
CLASS NOMBRECLASE
{ PRIVATE DECLARACIN MIEMBRO PRIVADO; // MIEMBROS PRIVADOS
PROTECTED DECLARACIN MIEMBRO PROTEGIDO; // MIEMBROS PROTEGIDOS
PUBLIC DECLARACIN MIEMBRO PBLICO; // MIEMBROS PBLICOS
}
POR CADA DATO SE PROPORCIONA UN MTODO MIEMBRO QUE DEVUELVE SU VALOR Y UN MTODO QUE ASIGNA NUMERADOR Y DENOMINADOR. TIENE UN CONSTRUCTOR QUE INICIALIZA UN OBJETO A 0/1.
CLASS RACIONAL
PUBLIC RACIONAL()
NUMERADOR = 0;
DENOMINADOR = 1;
}
EL CDIGO FUENTE DE LA DEFINICIN DE UNA CLASE, CON TODOS SUS MTODOS Y VARIABLES INSTANCIA SE ALMACENA EN
ARCHIVOS DE TEXTO CON EXTENSIN .JAVA Y EL NOMBRE DE LA CLASE, POR EJEMPLO, RACIONAL. JAVA. NORMALMENTE, SE
SITA LA IMPLEMENTACIN DE CADA CLASE EN UN ARCHIVO INDEPENDIENTE. LAS CLASES PUEDEN PROCEDER DE
DIFERENTES FUENTES:
SE PUEDEN DECLARAR E IMPLEMENTAR SUS PROPIAS CLASES. EL CDIGO FUENTE SIEMPRE ESTAR DISPONIBLE; PUEDEN
ESTAR ORGANIZADAS POR PAQUETES.
SE PUEDEN UTILIZAR CLASES QUE HAYAN SIDO ESCRITAS POR OTRAS PERSONAS O INCLUSO QUE SE HAYAN COMPRADO. EN
ESTE CASO, SE PUEDE DISPONER DEL CDIGO FUENTE O ESTAR LIMITADO A UTILIZAR EL BYTECODE DE LA IMPLEMENTACIN.
SER NECESARIO DISPONER DEL PAQUETE DONDE SE ENCUENTRAN.
SE PUEDEN UTILIZAR CLASES DE LOS DIVERSOS PACKAGES QUE ACOMPAAN A SU SOFTWARE DE DESARROLLO JAVA.
CLASES PBLICAS
LA DECLARACIN DE UNA CLASE PUEDE INCLUIR EL MODIFICADOR PUBLIC COMO PREFIJO EN LA CABECERA DE
LA CLASE. POR EJEMPLO:
PAQUETES
LOS PAQUETES SON LA FORMA QUE TIENE JAVA DE ORGANIZAR LOS ARCHIVOS CON LAS CLASES
NECESARIAS PARA CONSTRUIR LAS APLICACIONES. JAVA INCORPORA VARIOS PAQUETES, POR EJEMPLO
JAVA.LANG O JAVA.IO, CON LAS CLASES BSICAS PARA CONSTRUIR PROGRAMAS: SYSTEM, STRING,
INTEGER ...
SENTENCIA PACKAGE
CMO SE PUEDE DEFINIR UN PAQUETE? LA SENTENCIA PACKAGE SE UTILIZA PARA ESTE COMETIDO. EN PRIMER LUGAR SE DEBE INCLUIR LA SENTENCIA PACKAGE COMO PRIMERA
LNEA DEL ARCHIVO FUENTE DE CADA UNA DE LAS CLASES DEL PAQUETE. POR EJEMPLO, SI LAS CLASES LAPIZ, BOLIGRAFO Y FOLIO SE VAN A ORGANIZAR FORMANDO EL PAQUETE
ESCRITORIO, EL ESQUEMA A SEGUIR ES EL SIGUIENTE:
PACKAGE ESCRITORIO;
PACKAGE ESCRITORIO;
PACKAGE ESCRITORIO;
IMPORT
LAS CLASES QUE SE ENCUENTRAN EN LOS PAQUETES SE IDENTIFICAN UTILIZANDO EL NOMBRE DEL PAQUETE, EL
SELECTOR PUNTO (.) Y, A CONTINUACIN, EL NOMBRE DE LA CLASE. POR EJEMPLO, LA DECLARACIN DE LA
CLASE ARTE CON ATRIBUTOS DE LA CLASE PRINTSTREAM (PAQUETE JAVA.IO) Y LAPIZ (PAQUETE ESCRITORIO):
CONSTRUCTORES SOBRECARGADOS
AL IGUAL QUE SE PUEDE SOBRECARGAR UN MTODO DE UNA CLASE, TAMBIN SE PUEDE SOBRECARGAR EL
CONSTRUCTOR DE UNA CLASE. DE HECHO, LOS CONSTRUCTORES SOBRECARGADOS SON BASTANTE
FRECUENTES Y PROPORCIONAN DIFERENTES ALTERNATIVAS PARA INICIALIZAR OBJETOS.
RECOLECCIN DE OBJETOS
UN OBJETO SIEMPRE HA DE ESTAR REFERENCIADO POR UNA VARIABLE; EN EL MOMENTO EN QUE UN
OBJETO DEJA DE ESTAR REFERENCIADO, SE ACTIVA LA RUTINA DE RECOLECCIN DE MEMORIA, SE PUEDE
DECIR QUE EL OBJETO ES LIBERADO Y LA MEMORIA QUE OCUPA PUEDE SER REUTILIZADA. POR EJEMPLO:
PUNTO P = NEW PUNTO(1,2); LA SENTENCIA P = NULL PROVOCA QUE EL OBJETO PUNTO SEA LIBERADO
AUTOMTICAMENTE.
MTODO FINALIZE()
CLASS TRIANGULO
{
PRIVATE DOUBLE BASE;
PRIVATE DOUBLE ALTURA;
PUBLIC DOUBLE AREA()
{
RETURN BASE*ALTURA/2.0 ;
}
}
MTODOS STATIC
LOS MTODOS DE LAS CLASES SE LLAMAN A TRAVS DE LOS OBJETOS. EN OCASIONES INTERESA DEFINIR
MTODOS QUE ESTN CONTROLADOS POR LA CLASE, DE MODO QUE NO HAGA FALTA CREAR UN OBJETO PARA
LLAMARLOS: SON LOS MTODOS STATIC. MUCHOS MTODOS DE LA BIBLIOTECA JAVA ESTN DEFINIDOS COMO
STATIC; ES, POR EJEMPLO, EL CASO DE LOS MTODOS MATEMTICOS DE LA CLASE MATH: MATH.SIN(),
MATH.SQRT().
LA
CLASE OBJECT
OBJECT ES LA SUPERCLASE BASE DE TODAS LAS CLASES DE JAVA; TODA CLASE DEFINIDA EN JAVA HEREDA DE LA CLASE OBJECT Y, EN
CONSECUENCIA, TODA VARIABLE REFERENCIA A UNA CLASE SE CONVIERTE, AUTOMTICAMENTE, AL TIPO OBJECT. POR EJEMPLO:
OPERADOR INSTANCEOF
CON FRECUENCIA, SE NECESITA CONOCER LA CLASE DE LA QUE ES INSTANCIA UN OBJETO. HAY QUE TENER
EN CUENTA QUE, EN LAS JERARQUAS DE CLASES, SE DAN CONVERSIONES AUTOMTICAS ENTRE CLASES
DERIVADAS Y SU CLASE BASE; EN PARTICULAR, CUALQUIER REFERENCIA SE PUEDE CONVERTIR A UNA
VARIABLE DE TIPO OBJECT.
CON EL OPERADOR INSTANCEOF SE DETERMINA LA CLASE A LA QUE PERTENECE UN OBJETO, QUE TIENE DOS
LA IMPLEMENTACIN DE UN TAD EN JAVA SE REALIZA DE FORMA NATURAL CON UNA CLASE. DENTRO DE LA
CLASE VA A RESIDIR LA REPRESENTACIN DE LOS DATOS JUNTO A LAS OPERACIONES (MTODOS DE LA
CLASE). LA INTERFAZ DEL TIPO ABSTRACTO QUEDA PERFECTAMENTE DETERMINADA CON LA ETIQUETA
PUBLIC, QUE SE APLICAR A LOS MTODOS DE LA CLASE QUE REPRESENTEN OPERACIONES.