Paradigma Orientada a Objetos



Descargar 18,09 Kb.
Fecha de conversión08.07.2017
Tamaño18,09 Kb.

Paradigma Orientada a Objetos

    • Técnica para el modelado de sistemas.
    • Se modela el sistema a través de un número de objetos relacionados que interactúan entre si.
    • Similar a la manera en que la gente ve su medio ambiente.
    • Es una forma de pensar y concebir el mundo.

Abstracción

  • Es el proceso de ignorar los detalles para concentrarse en las características esenciales.
  • Es el proceso mental primario para abordar la complejidad.
  • Simplifica la interacción de los usuarios con objetos abstraídos.
  • Hay dos tipos: La abstracción funcional y la abstracción de datos.

Abstracción Funcional – (1)

  • Ignora detalles acerca del procesamiento.
  • Hace uso de abstracciones de lenguaje de alto nivel.
  • Utiliza abstracciones definidas por el usuario ( procedimientos y subrutinas )

Abstracción Funcional – (2)

  • int *endptr; int *primptr;
  • int i,k;
  • primptr = ptr; endptr = ptr + n - 1;
  • for(i=0; i
  • {
  • for(ptr = primptr; ptr < endptr - i; ptr++)
  • if(*ptr > *(ptr+1))
  • {
  • k = *ptr;
  • *ptr = *(ptr+1);
  • *(ptr+1) = k;
  • }
  • }

Abstracción Funcional – (3)

  • El código anterior parece ser complejo.
  • Si se tuviera que poner cada vez que ser requiera entonces el propósito global del programa se perdería.
  • En lugar de esto usamos una función de ordenamiento
  • void burbuja(int ptr[], int n)

Abstracción de Datos

  • Trata con tipos de datos
  • Permite ignorar los detalles de la representación interna de los datos
  • Involucra la abstracción funcional.
    • p.ej. Cuando las operaciones entre tipos de datos son ejecutadas con números de punto flotante, la representación interna permanece oculta.

Identificando a los Objetos (1)

  • Los objetos pueden ser una oración, una cuenta en un banco, un número, un auto, una persona, etc.
  • Los objetos son:

Identificando a los Objetos (2)

  • Vaca
  • Objeto Empleado
  • X + Yi
  • Número Complejo
  • Reloj Despertador
  • Motocicleta

Identificando a los Objetos Atributos y Operaciones

  • Los objetos tienen atributos y operaciones.
  • Los atributos son: las características del los objeto.
  • Las operaciones son: lo que un objeto puede hacer.

Identificando a los Objetos Identidad

  • Además de los atributos y operaciones un objeto tiene una identidad.
  • La identidad de un objeto es lo que lo diferencia y distingue de otros objetos similares.

Identificando a los Objetos Sus tres elementos

  • Podemos resumir que todo objeto esta compuesto de 3 elementos:
  • Objeto = atributos + operaciones + identidad

Identificando a los Objetos atributos, operaciones e identidad

  • Atributos de las nubes:
  • Tamaño, forma, contenido
  • de agua
  • Operaciones de las nubes:
  • llueven, nevan, truenan
  • Identidad de las nubes :
  • Cada nube es diferente en tamaño y forma

Criterios para Identificar un Objeto

Importancia para el Dominio del Problema

  • ¿Existe dentro de las fronteras del enunciado del problema?
  • ¿Es requerido para alcanzar completamente las responsabilidades del sistema?
  • ¿ Los objetos son características de otros objetos ?

Existencia Independiente

  • Para que un objeto no sea una característica de otro objeto, necesariamente debe existir con independencia.
  • P.ej. Considere una computadora que tiene Pentium III de procesador. En una perspectiva ( para un vendedor ), el procesador es una característica o atributo de la computadora. Pero si usted fuera diseñador de componentes de computadoras o PC en una fábrica, el procesador por si mismo es un objeto independiente

Atributos y Operaciones

  • Un objeto debe tener atributos y operaciones
  • Si no los tiene, es probablemente un atributo u operación de otro objeto.

Encapsulamiento

  • El encapsulamiento separa los aspectos externos de un objeto de sus detalles internos de implementación.
  • Los cambios internos necesarios no afectan a la interface externa.
  • P.ej. Ud. no necesita saber como un teléfono conecta a las dos partes para poder utilizarlo. Solo necesita entender la interface, cual es la composición de botónes, el auricular ( para el oido ) , y la bocina ( para la voca ). Ud. puede ignorar los procesos internos de cómo es hecha la conexión, los switches que cruzan los países, etc.

Partes de un objeto encapsulado

  • Cada objeto tiene:
    • Interface pública ( externo ).
    • Implementación ( interno )
    • Información interna ( información para la implementación ).

Implementando el Encapsulamiento

  • Los atributos y operaciones de un objeto son sus miembros.
  • Los miembros de un objeto pueden ser public o private .
  • En sistemas OO puros, todos los atributos son privados y pueden ser cambiados o accesados solo a través de operaciones públicas.

Mensajes – (1)

  • Un mensaje es la manera en que los objetos se comunican e interactúan entre sí.
  • Un mensaje es la invocación de una operación u método de la interfaz publica de un objeto encapsulado
  • En los objetos encapsulados, los mensajes son entre los métodos públicos de los objetos.
  • El acceso al estado de un objeto es mediante estos mensajes a métodos accesores y mutadores. ( los getters y setters ).

Mensajes - (2) Estado de un objeto

  • El estado de un objeto son los valores actuales de los atributos de un objeto en un instante dado.
  • La instancia de una clase ( o sea un objeto ) cambia o muta sus valores en el transcurso del tiempo de vida del objeto.
  • Este estado del objeto solo es posible accesarlo o modificarlo con mensajes o invocaciones a las operaciones de la interface pública de los objetos para no perder la propiedad del encapsulamiento. ( getters y setters ).

Mensajes - (3)

  • Lectura de velocidad
  • Velocidad
  • RPM
  • Luces Testigo
  • Fuerzas del Volante
  • Vista
  • Oido
  • Tacto
  • Estados
  • Mentales

Mensajes - (4)

  • Acelerar ( Fuerza)
  • Girar (sentido,ángulo)
  • Frenar (Fuerza)
  • Embragar
  • Desembragar
  • Freno
  • Acelerador
  • Palanca de
  • velocidades
  • -Posición
  • -Velocidad
  • -Aceleración
  • -RMP del motor
  • …..
  • Volante
  • Cambiar marcha ( Marcha)
  • Mensajes entre objetos

Resumen

  • Ud. Debería definir hasta este momento los siguientes términos.
        • Objeto
        • Atributos
        • Operaciones
        • Abstracción
        • Ocultamiento de Datos
        • Encapsulado
        • Mensajes
        • Miembro

Clases

  • Un objeto es una instancia: Una específica galleta, hoja, balón, carro o moneda.
  • “Un carro” es una clase; “mi carro” es un objeto

Clases de objetos

  • Objetos de la clase Balón

Concepto de Clase

  • Clase : Es una descripción de atributos y comportamientos de un conjunto de objetos similares. Los objetos de una clase o tipo determinado comparten los mismos comportamientos y atributos. Las clases actúan en forma muy parecida a una plantilla o molde para galletas en el sentido de que una clase se utiliza para crear o instanciar objetos
  • Creación
  • o
  • instanciación

Generalización

  • Ejemplo: Transporte es una generalización de varias clases que proveen transportación.
  • La Generalización identifica y define los atributos y operaciones comunes en una colección de objetos.

Herencia – (1)

  • Balon
  • Soccer Ball
  • Baseball
  • Basketball
  • Superclase
  • Subclases

Herencia – (2)

  • Es un mecanismo para definir una nueva clase en términos de una clase existente.
  • Permite agrupar clases relacionadas de tal manera que pueden ser manejadas colectivamente
  • Promueve su uso
  • Permite esconder o sobreponer miembros heredados
  • Términos relevantes: generalización, especialización, sobreposición.

Herencia – (3) Especialización y Generalización

Especialización – (1)

  • Mientras la generalización se enfoca a las clases mayores del sistema, y ayudan a identificar nuevas clases, la especialización se enfoca a la creación individual, mas clases específicas que heredarán de una clase mayor. La especialización es herencia con la agregación y modificación de métodos para resolver problemas específicos.

Especialización - (2)

  • Transporte
  • Bicicleta
  • Avión
  • Automóvil
  • Trailer
  • Carro
  • Carreras
  • Montaña
  • Comercial
  • Privado
  • Clases Generalizadas:
  • Clases:
  • Clases
  • Especializadas:

Polimorfismo - (1)

  • Le permite implementar las operaciones heredadas en una subclase.
  • Trabaja solamente cuando operaciones comunes dan el mismo resultado semántico.
  • La implementación de una función polimórfica depende del objeto al cual es aplicado.
  • Puede usarse solamente cuando hay herencia.

Polimorfismo (2)

  • P.Ej. Una superclase Balón incluye en sus operaciones la operación lanzar. Sus subclases, tales como Balon de tenis, o Balón de Soccer, heredarían la misma operación. Sigue siendo la misma operación en las tres clases, sin embargo el como y el cuando usted lanza usted cada balón difiere uno de otro.

Polimorfismo – (3)

  • El polimorfismo es un concepto importante en los sistemas orientados a objetos que soportan el reutilización y mantenimiento de software.
  • lanza
  • lanza

Polimorfismo – (4) otro ejemplo

  • Considere una clase general llamada InstrumentoDeEscritura.
  • La clase tiene una operación llamada escribe.
  • ¿Qué objetos del salón de clase pueden ser subclases de InstrumentoDeEscritura?
  • ¿Cómo es la operación polimórfica escribe para cada objeto?

Polimorfismo – (5) puntos clave.

  • Los siguientes puntos son clave para acordarnos acerca del polimorfismo:
  • El polimorfismo esta basado en la herencia.
  • El polimorfismo puede ser aplicado a cualquier operación que es heredada de una superclase
  • Las subclases sobreponen o sobre-escriben la operación heredada para reflejar mejor esta para las acciones de sus objetos , proveyendo una mejor forma de operación, de aquí el término de polimorfismo.

Clases Abstractas – (1)

  • Una clase con por lo menos una operación abstracta es una clase abstracta.
  • Una subclase de una clase abstracta necesita proveer una implementación de todas las operaciones abstractas o de los contrario también será una clase abstracta.
  • Una clase abstracta no puede ser instanciada ( usted no puede crear objetos de una clase abstracta ).
  • Las operaciones abstractas de una clase abstracta son simplemente declarativos.

Clases abstractas – (2) Ejemplo

  • Considere implementar clases para un circulo , rectángulo, y triángulo.
  • Las operaciones para estas clases deben incluir operaciones como setColor y setBorderStyle.
  • Puede decidir crear una clase abstracta llamada figura con dos operaciones abstractas: setColor y setBorderStyle
  • Las subclases deben sobre-escribir o sobreponer las operaciones abstractas y proveer código de implementación que tenga sentido para cada subclase de figura.

Resumen

  • Ud. Debería definir hasta este momento los siguientes términos:
        • Clase
        • Objeto
        • Generalización
        • Herencia
        • Sobreponer o Sobre – escritura
        • Especialización
        • Polimorfismo
        • Clase abstracta


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal