PDF de programación - Programación Orientada a Objetos - Tema 3: Propiedades Básicas de la Orientación a Objetos

Filtrado por el tag: formulas
<<>>
Imágen de pdf Programación Orientada a Objetos - Tema 3: Propiedades Básicas de la Orientación a Objetos

Programación Orientada a Objetos - Tema 3: Propiedades Básicas de la Orientación a Objetosgráfica de visualizaciones

Publicado el 3 de Julio del 2017
1.560 visualizaciones desde el 3 de Julio del 2017
4,8 MB
116 paginas
Creado hace 17a (06/11/2006)
Programación Orientada a Objetos

Tema 3: Propiedades Básicas de la

Orientación a Objetos

Eduardo Mosqueira Rey

LIDIA
Laboratorio de Investigación y
desarrollo en Inteligencia Artificial

Departamento de Computación
Universidade da Coruña, España

Objetivos

• Conocer y analizar las principales propiedades

de la orientación a objetos

• Estas propiedades incluirán aquellas que son
compartidas por los tipos abstractos de datos
(como abstracción, encapsulación,
modularidad), como aquellas propias de la
orientación a objetos (herencia, polimorfismo,
ligadura dinámica, etc.).

• Estudiar cómo un lenguaje como Java

implementa, en mayor o menor medida, dichas
propiedades básicas.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

2

Índice

1. Abstracción
2. Encapsulamiento
3. Modularidad
4. Jerarquía
5. Polimorfismo
6. Tipificación
7. Ligadura dinámica

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

3

Índice

1. Abstracción

– Definición y características

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

4

Abstracción

Definición y características

• Definición

• Características

– Representación de las características fundamentales de algo

sin incluir antecedentes o detalles irrelevantes

– Es uno de los métodos fundamentales para enfrentarse a la

complejidad inherente al software (ya visto en los TADs).
– La OO fomenta que el uso de abstracciones en los datos y

procedimientos para simplificar la descripción del problema

– El elemento clave de la abstracción es la clase

• Clase ≡ Descripción abstracta de un grupo de objetos, cada uno de

los cuales se diferencia por su estado específico y por la
posibilidad de realizar una serie de operaciones.

– Ejemplo, Esfera

• Estado: coordenadas del centro y radio
• Operaciones: mover el centro, cambiar el radio.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

5

Índice

2. Encapsulamiento

– Definición y características
– Ventajas

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

6

Encapsulamiento

Definición y características

• Definición

– Proceso de almacenar en un mismo compartimiento los elementos de
una abstracción que constituyen su estructura y su comportamiento

• Características

– Abstracción y el encapsulamiento son conceptos complementarios:
• La abstracción se centra en el comportamiento observable de un objeto
• El encapsulamiento se centra en la implementación que da lugar a ese

comportamiento.

– El encapsulamiento también implica ocultación de información

• Cada objeto revela lo menos posible de su estructura interna
• parte pública ⇒ interfaz, parte privada ⇒ implementación.

– Ejemplos

• Una operación es vista por sus usuarios como si fuera una simple entidad,

aunque está formada por una secuencia de operaciones a bajo nivel.

• Un objeto es visto como un simple objeto en vez de como una composición

de sus partes individuales.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

7

Encapsulamiento

Ventajas

• Ventajas

– La supresión de los detalles de bajo nivel nos

permite razonar acerca de la operación u objeto de
forma más eficiente.

– Un cambio en la representación de una abstracción
puede no obligar a un cambio en los clientes que la
utilicen
• Cambios en el diseño que no afecten al interfaz no se

propagan

– Java

• Podemos cambiar una función por otra más eficiente sin

afectar a los usuarios de dicha función

• Muy importante ya que facilita el mantenimiento del software

• La encapsulación se consigue a través del concepto de
clase combinado con los especificadores de acceso que
limitan la visibilidad de los atributos y métodos.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

8

Índice

3. Modularidad

– Definición y características
– Modularidad en Java

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

9

Modularidad

Definición y características

• Definición

– Propiedad que tiene un sistema que ha sido descompuesto en

un conjunto de partes o módulos que sean cohesivos y
débilmente acoplados
• Cohesivos ≡ agrupan abstracciones que guardan relación lógica
• Débilmente acoplados ≡ minimizan las dependencias entre módulos

• Ventajas

– El hecho de fragmentar un programa en componentes
individuales suele contribuir a reducir su complejidad

– Permite crear una serie de fronteras bien definidas y dentro del

programa ⇒ aumenta la comprensión del mismo.

• Sinergia entre abstracción, encapsulamiento y

modularidad
– Un objeto proporciona una frontera bien definida alrededor de

una sola abstracción, el encapsulamiento y la modularidad
proporcionan barreras que rodean a esa abstracción.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

10

Modularidad

Definición y características

• Abstracción, Encapsulamiento y Modularidad

mensaje

Módulo

Objeto 1

Estado

Interfaz

Objeto 3

Estado

Interfaz

Objeto 2

Estado

Interfaz

Parte pública

Parte privada

Objeto 5

Estado

Interfaz

Objeto 4

Estado

Interfaz

11

Modularidad

Modularidad en Java

• Clases

– Encapsulan los atributos y métodos de un tipo de

objetos en un solo compartimiento

– Ocultan, mediante los especificadores de acceso, los

elementos internos que no se pretende publicar al
exterior.

– Esta protección es altamente configurable al existir

varios niveles de acceso:
• public
• protected
• por defecto (package)
• private

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

12

Modularidad

Modularidad en Java

• Ficheros

– Unidades físicas de compilación
– Dentro de un fichero “.java” pueden residir varias

clases con las siguientes restricciones
• Sólo puede haber una clase pública por fichero
• El nombre del fichero debe ser el mismo que el de la clase

• Si no existe ninguna clase pública tampoco existe ninguna

restricción con respecto al nombre del fichero

pública

– Compilación

• La compilación de un fichero “.java” genera tantos ficheros

“.class” (bytecodes) como clases existen en dicho fichero

• Para facilitar la compilación Java recompila los ficheros
“.java” si tienen el mismo nombre que un fichero “.class”
pero con una fecha posterior.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

13

Modularidad

Modularidad en Java

• Paquetes

– Unidades lógicas de agrupación de clases
– Las clases pueden ser

• Públicas: forman parte del interfaz de su paquete
• No públicas: sólo son visibles a clases de su mismo paquete

• Definición

– Se utiliza la directiva package al principio de cada fichero.
– En caso de que no se especifique paquete se considera que todas las

clases que se encuentran en el paquete por defecto

• Jerarquías de paquetes

– El nombre del paquete puede tener varios niveles, lo que facilita su

organización (java.util, java.util.jar, java.awt, java.awt.color, etc.).

– De todas formas no existe el concepto de subpaquete ni relaciones

jerárquicas entre paquetes (la relación entre java.util y java.util.jar es la
misma que entre java.util y javax.swing ⇒ son dos paquetes distintos).

– Simplemente se permite una organización jerárquica de los nombres

de los paquetes por motivos de organización y claridad

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

14

Modularidad

Modularidad en Java

• Objetivos de los paquetes:

– Diseñar un dispositivo de modularidad de nivel superior a las

clases.
• Cada paquete puede tener sus propias clases privadas

desconocidas para aquella persona que quiera utilizar el paquete.

– Agrupar clases con funcionalidades similares.

• De forma que sean más fáciles de localizar y pueda verse

claramente que las clases están relacionadas.

– Organizar físicamente los ficheros fuente.

• Para poder utilizar las clases compiladas, los ficheros .class deben

estar disponibles en el directorio indicado por la variable de
entorno CLASSPATH.

• Para organizar el directorio del CLASSPATH Java equipara los

nombres de paquetes con los directorios en disco (Java buscará
las clases del paquete com.miempresa.utils en el directorio
CLASSPATH/com/miempresa/utils).

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

15

Modularidad

Modularidad en Java

• Objetivos de los paquetes (cont.):

– Prevenir conflictos de nombre y favorecer la

reutilización.
• Los nombre de las clases pueden entrar en conflicto, para

evitarlo la clase se compone de el nombre del paquete al que
pertenece, un punto y el nombre de la clase

• Pueden existir conflictos con los nombres de los paquetes
• Para evitar esto existe el convenio de utilizar como prefijo a

los nombres de los paquetes los nombres invertidos del
dominio de Internet de la empresa que los ha desarrollado

• Ejemplo, los paquetes de Borland tendrían el prefijo

“com.borland”, los paquetes del OMG tendría el prefijo
“org.omg”, etc.

• Los nombres de dominio no pueden repetirse, evitando así

los posibles conflictos

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

16

Modularidad

Modularidad en Java

• La sentencia import

– Para simplificar la sintaxis y no tener que introducir un nombre

largo de paquete cada vez que se utiliza una clase puede
utilizarse la sentencia import al principio de cada fichero

– De esta forma puede utilizarse el nombre de la clase sin indicar

el paquete al que pertenece

– La sentencia import puede utilizarse de dos formas distintas:
• import nombrepaquete.* ⇒ importa todas las clases del paquete
• import nombrepaquete.Clase ⇒ imp
  • Links de descarga
http://lwp-l.com/pdf4826

Comentarios de: Programación Orientada a Objetos - Tema 3: Propiedades Básicas de la Orientación a Objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad