Publicado el 4 de Julio del 2017
1.047 visualizaciones desde el 4 de Julio del 2017
1,2 MB
57 paginas
Programación Orientada a Objetos
Programación Orientada a Objetos
Tema 2: Elementos Básicos de la
Tema 2: Elementos Básicos de la
Orientación a Objetos
Orientación a Objetos
Eduardo Mosqueira Rey
Eduardo Mosqueira Rey
LIDIA
LIDIA
Laboratorio de Investigación y
Laboratorio de Investigación y
desarrollo en Inteligencia Artificial
desarrollo en Inteligencia Artificial
Departamento de Computación
Departamento de Computación
Universidade da Coruña, España
Universidade da Coruña, España
Objetivos
Objetivos
• Conocer los elementos fundamentales que forman la
• Conocer los elementos fundamentales que forman la
base de todo lenguaje orientado a objetos.
base de todo lenguaje orientado a objetos.
• Conocer las características de implementación de
• Conocer las características de implementación de
clases y objetos en los lenguajes de programación:
clases y objetos en los lenguajes de programación:
gestión de memoria, mecanismos de visibilidad, etc.
gestión de memoria, mecanismos de visibilidad, etc.
gestión de memoria, mecanismos de visibilidad, etc.
gestión de memoria, mecanismos de visibilidad, etc.
• Aprender a crear definiciones de clases e instanciar
• Aprender a crear definiciones de clases e instanciar
objetos en un lenguaje de programación orientado a
objetos en un lenguaje de programación orientado a
objetos como Java.
objetos como Java.
• Conocer el concepto de metaclase y aprender a como
• Conocer el concepto de metaclase y aprender a como
usar las metaclases como mecanismo de reflexión.
usar las metaclases como mecanismo de reflexión.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
2
Índice
Índice
1. Clases
1. Clases
2. Objetos
2. Objetos
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
3
Índice
Índice
1. Clases
1. Clases
– Definición
– Definición
– Declaración
– Declaración
– Ejemplo
– Ejemplo
– Ejemplo
– Ejemplo
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
4
Clases
Clases
Definición
Definición
• Programa orientado a objetos
• Programa orientado a objetos
– Se compone de objetos que se comunican entre si intercambiando
– Se compone de objetos que se comunican entre si intercambiando
mensajes
mensajes
• Relación clases - objetos
• Relación clases - objetos
– Similar a la existente entre tipos y variables (una clase es la
– Similar a la existente entre tipos y variables (una clase es la
declaración de un tipo objeto)
declaración de un tipo objeto)
declaración de un tipo objeto)
declaración de un tipo objeto)
– Las clases se utilizan como plantillas que describen como se
– Las clases se utilizan como plantillas que describen como se
construyen ciertos tipos de objetos.
construyen ciertos tipos de objetos.
– Cada vez que se construye un objeto a partir de una clase decimos que
– Cada vez que se construye un objeto a partir de una clase decimos que
estamos ejemplificando (o instanciando) dicha clase (un objeto es una
estamos ejemplificando (o instanciando) dicha clase (un objeto es una
ejemplificación de una clase)
ejemplificación de una clase)
• Definición de clase abarca:
• Definición de clase abarca:
– Definición estructural: en donde se define el estado y el
– Definición estructural: en donde se define el estado y el
comportamiento que tendrán los objetos de esa clase
comportamiento que tendrán los objetos de esa clase
– Propósito de creación de nuevos objetos: en donde define los
– Propósito de creación de nuevos objetos: en donde define los
procedimientos para construir nuevos objetos de esa clase.
procedimientos para construir nuevos objetos de esa clase.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
5
Clases
Clases
Declaración
Declaración
• Declaración
• Declaración
[Modificadores] class Nombre [extends clase][implements interfaz, ...]
[Modificadores] class Nombre [extends clase][implements interfaz, ...]
{ // Lista de atributos // Lista de métodos }
{ // Lista de atributos // Lista de métodos }
• Modificadores de clase
• Modificadores de clase
– public: permite que la clase sea accesible desde otro paquete
– public: permite que la clase sea accesible desde otro paquete
– abstract: Define clases que no pueden instanciarse
– abstract: Define clases que no pueden instanciarse
– abstract: Define clases que no pueden instanciarse
– abstract: Define clases que no pueden instanciarse
– final: Define clases que no pueden extenderse con subclases
– final: Define clases que no pueden extenderse con subclases
• Nota: si no se pone ninguno de los modificadores quiere decir que
• Nota: si no se pone ninguno de los modificadores quiere decir que
la clase es no-public, no-abstract y no-final. No existen
la clase es no-public, no-abstract y no-final. No existen
modificadores por defecto
modificadores por defecto
• Cláusula extends
• Cláusula extends
– Define la superclase de la clase definida (por defecto Object)
– Define la superclase de la clase definida (por defecto Object)
• Cláusula implements
• Cláusula implements
– Define los interfaces que implementa la clase
– Define los interfaces que implementa la clase
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
6
Clases
Clases
Ejemplo
Ejemplo
• Definición de clase
• Definición de clase
public class Caja
{
// atributos
private int value;
// Métodos
public Caja ()
{value = 0;}
public void setValue (int v)
{ value = v; }
public int getValue ()
{ return value; }
}
• Instanciación de la clase
• Instanciación de la clase
...
Caja x = new Caja();
x.setValue (7);
...
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
7
Índice
Índice
2. Objetos
2. Objetos
–
–
Identidad
Identidad
• Gestión de la memoria
• Gestión de la memoria
• Comparación de objetos
• Comparación de objetos
– Estado
– Estado
• Especificadores de acceso
• Especificadores de acceso
• Modificadores
• Modificadores
•
•
Tiempo de vida, inicialización y ámbito
Tiempo de vida, inicialización y ámbito
– Comportamiento
– Comportamiento
Tipos de retorno y parámetros
Tipos de retorno y parámetros
• Definición de métodos
• Definición de métodos
•
•
• Métodos constructores
• Métodos constructores
•
•
• Destrucción de objetos
• Destrucción de objetos
• Recolección de basura
• Recolección de basura
• Métodos especiales
• Métodos especiales
Tipos enumerados
Tipos enumerados
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
8
Objetos
Objetos
• Objeto: elemento identificable que contiene
• Objeto: elemento identificable que contiene
– Características declarativas
– Características declarativas
• Utilizadas para determinar el estado del objeto.
• Utilizadas para determinar el estado del objeto.
– Características procedimentales
– Características procedimentales
• Utilizadas para modelar el comportamiento del objeto.
• Utilizadas para modelar el comportamiento del objeto.
– Características estructurales
– Características estructurales
• Utilizadas para organizar los objetos con respecto a otros
• Utilizadas para organizar los objetos con respecto a otros
objetos de su entorno.
objetos de su entorno.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
9
Objetos
Objetos
Identidad
Identidad
• Identidad
• Identidad
– Propiedad de un objeto que lo distingue de todos los
– Propiedad de un objeto que lo distingue de todos los
demás.
demás.
– Esta unicidad se consigue a través de unos
– Esta unicidad se consigue a través de unos
– Esta unicidad se consigue a través de unos
– Esta unicidad se consigue a través de unos
identificadores de objetos (OID – object identifiers)
identificadores de objetos (OID – object identifiers)
identificadores de objetos (OID – object identifiers)
identificadores de objetos (OID – object identifiers)
– Los OIDs son independientes de los atributos que
– Los OIDs son independientes de los atributos que
definen el estado del objeto y que normalmente se
definen el estado del objeto y que normalmente se
implementan a través de punteros
implementan a través de punteros
– Generalmente los identificadores de objetos son
– Generalmente los identificadores de objetos son
generados por el sistema y no pueden ser
generados por el sistema y no pueden ser
modificados por el usuario.
modificados por el usuario.
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
10
Objetos
Objetos
Identidad
Identidad
• Gestión de la memoria
• Gestión de la memoria
– Pila (Stack)
– Pila (Stack)
• Estructura en la cual solo se pueden incorporar o eliminar
• Estructura en la cual solo se pueden incorporar o eliminar
elementos por un solo punto denominado cima.
elementos por un solo punto denominado cima.
• Se utiliza para las llamadas a funciones, cuando se llama a una
• 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
función se reserva espacio en la pila para los valores locales y los
parámetros de dicha función.
parámetros de dicha función.
parámetros de dicha función.
parámetros de dicha función.
– Montículo (Heap)
– Montículo (Heap)
• Parte de la memoria que no está ligada a la llamada de funciones y
• 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
en el cual la memoria se asigna cuando se solicita expresamente (a
través del operador new en Java)
través del operador new en Java)
– En OO
– En OO
• Para una mayor eficiencia la pila almacena tipos básicos cuyo
• Para una mayor eficiencia la pila almacena tipos básicos cuyo
tamaño
Comentarios de: Programación Orientada a Objetos - Tema 2: Elementos Básicos de la Orientación a Objetos (0)
No hay comentarios