1.541 visualizaciones desde el 3 de Julio del 2017
2,7 MB
65 paginas
Creado hace 18a (16/10/2006)
Programación Orientada a Objetos
Tema 2: Elementos Básicos 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 los elementos fundamentales que forman la
base de todo lenguaje orientado a objetos.
• Conocer las características de implementación de
clases y objetos en los lenguajes de programación:
gestión de memoria, mecanismos de visibilidad, etc.
• Aprender a crear definiciones de clases e instanciar
objetos en un lenguaje de programación orientado a
objetos como Java.
• Conocer el concepto de metaclase y aprender a como
– Se compone de objetos que se comunican entre si intercambiando
mensajes
• Relación clases - objetos
– Similar a la existente entre tipos y variables (una clase es la
declaración de un tipo objeto)
– Las clases se utilizan como plantillas que describen como se
construyen ciertos tipos de objetos.
– Cada vez que se construye un objeto a partir de una clase decimos que
estamos ejemplificando (o instanciando) dicha clase (un objeto es una
ejemplificación de una clase)
• Definición de clase abarca:
– Definición estructural: en donde se define el estado y el
comportamiento que tendrán los objetos de esa clase
– Propósito de creación de nuevos objetos: en donde define los
procedimientos para construir nuevos objetos de esa clase.
• Declaración
[Modificadores] class Nombre [extends clase][implements interface, ...]
{ // Lista de atributos // Lista de métodos }
• Modificadores de clase
– public: permite que la clase sea accesible desde otro paquete
– abstract: Define clases que no pueden instanciarse
– final: Define clases que no pueden extenderse con subclases
• Nota: si no se pone ninguno de los modificadores quiere decir que
la clase es no-public, no-abstract y no-final. No existen
modificadores por defecto
• Cláusula extends
– Define la superclase de la clase definida (por defecto Object)
– Propiedad de un objeto que lo distingue de todos los
demás.
– Esta unicidad se consigue a través de unos
identificadores de objetos (OID – object identifiers)
– Los OIDs son independientes de los atributos que
definen el estado del objeto y que normalmente se
implementan a través de punteros
– Generalmente los identificadores de objetos son
generados por el sistema y no pueden ser
modificados por el usuario.
• Estructura en la cual solo se pueden incorporar o eliminar
elementos por un solo punto denominado cima.
• Se utiliza para las llamadas a funciones, cuando se llama a una
función se reserva espacio en la pila para los valores locales y los
parámetros de dicha función.
– Montículo (Heap)
– En OO
• Parte de la memoria que no está ligada a la llamada de funciones y
en el cual la memoria se asigna cuando se solicita expresamente (a
través del operador new en Java)
• Para una mayor eficiencia la pila almacena tipos básicos cuyo
tamaño es conocido en tiempo de compilación (int, float, double,
etc.) entre los que se incluye el tipo puntero
• Los objetos se implementan como punteros que residen en la pila
pero que apuntan a una zona de memoria del montículo
• Dos objetos son idénticos si y solo si son el mismo objetos
(es decir, tienen un mismo OID).
– Igualdad:
• Dos objetos se consideran iguales si, a pesar de ser objetos
distintos (con distinto OID), sus atributos son idénticos
• El problema se plantea con los objetos compuestos (objetos
que contienen a otros objetos) y que hace que se distingan
dos tipos de igualdad: igualdad superficial e igualdad
profunda.
Comentarios de: Programación Orientada a Objetos - Tema 2: Elementos Básicos de la Orientación a Objetos (0)
No hay comentarios