Download Diapositivas - academicos.azc.uam.mx

Document related concepts

Polimorfismo (informática) wikipedia , lookup

Visitor (patrón de diseño) wikipedia , lookup

Objeto inmutable wikipedia , lookup

Common Lisp wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Transcript
Unidad 2
Elementos Intermedios del Lenguaje
Paradigmas de Programación
z
Un paradigma de programación se refiere a la forma en que se
entiende, diseña y desarrolla una aplicación
z
z
z
z
Imperativo
Declarativo
Funcional
Orientado a Objetos
Paradigma Orientado a Objetos
z
z
z
Lleva al proceso de programación llamado Programación
Orientada a Objetos (OOP)
Las unidades de datos son vistas como objetos en lugar de
unidades pasivas
Cada objeto es implementado como una unidad bien definida y
separada del resto
Conceptos Fundamentales
Abstracción
z
Clase
z
z
En la programación orientada a objetos, se entiende la palabra clase,
como un tipo de dato que a diferencia de un tipo de dato básico, se
define en el contexto de un problema
Objeto
z
Un objeto es la instancia de una clase. Esto a grandes rasgos significa
que todos los objetos son de un cierto tipo o más bien de una cierta
clase
Interfaz de una Clase
z
z
Una vez que se ha creado una clase, se pueden construir tantos
objetos como se necesiten para la solución del problema, para
comunicar un objeto con otros, se maneja el concepto de
interfaz
Los elementos de una interfaz son:
z
z
Atributos, datos miembro o campos
Métodos
Atributos
z
z
También conocidos como datos miembro o campos, puede ser
un objeto de cualquier tipo con el que se puede tener una
comunicación, también puede ser un dato primitivo
Si es un objeto, primero debe inicializarse para conectarse a un
objeto real, si es un tipo primitivo, es posible inicializarla al
momento de definir la clase
Métodos
z
También conocidas como funciones miembro, determinan los
mensajes que pueden recibir un objeto. Las partes
fundamentales de un método son:
z
z
z
z
Tipo de retorno
Nombre del método
Lista de parámetros
Modificadores
Firma de un Método
z
Firma
z
z
La firma de una operación se define por el tipo y número de
argumentos y el tipo de resultados que devuelve
Parametrización
z
La parametrización de una operación está definida por el número y
tipo de argumentos de cada método
Sobre Carga de Métodos
z
z
z
z
Es posible tener métodos con el mismo nombre
Se deben distinguir en base al tipo de los parámetros que
reciben
Los parámetros deben ser diferentes o en orden diferente
No se distinguen por el tipo de dato de retorno
Métodos Constructores
z
z
z
Es un método especial que garantiza que cada objeto se
inicialice
El nombre del constructor es el nombre de la clase
Existe un constructor por defecto que no es necesario incluir a
menos que se esté manejando la sobre carga del constructor
Acceso a Métodos
z
Desde la misma clase
z
z
Los métodos de una clase pueden ser accedidos solo utilizando el
nombre del método siempre y cuando se invoque desde la misma
clase
Desde otras clases
z
Para tener acceso a los métodos de una clase diferente, se utiliza el
operador punto, es decir:
objeto.nombreMetodo(parámetros)
Paquetes
z
z
z
z
Es el principio para la reutilización de clases
Un paquete puede contener varias clases con nombres únicos
Los nombres de los paquetes deben ser únicos
Es conveniente crear un paquete que agrupe a clases con
comportamiento similar
Visibilidad
z
z
Establece la proporción en que otras clases podrán acceder a los
atributos o utilizar las operaciones de una determinada clase
Tipos de visibilidad:
z
z
z
z
Pública
Privada
Protegida
Amistosa
Visibilidad Pública y Privada
z
z
Los elementos declarados como públicos (public) son accesibles
tanto desde fuera como desde dentro de la clase
Los elementos declarados como privados (private) son
accesibles sólo desde la misma clase donde fueron definidos
Visibilidad Protegida y Amistosa
z
z
Los elementos declarados como protegidos (protected) son
accesibles desde la misma clase donde fueron definidos y en sus
subclases o clases heredadas
Es el modificador por defecto, cuando no se especifica ninguno,
en este caso, un tipo de dato friendly o amistoso solo puede ser
visto por las clases que están en el mismo paquete
Conceptos Avanzados
Herencia
z
z
z
La herencia es una parte integral de los lenguajes de
programación orientada a objetos
Permite que una clase herede las propiedades (atributos y
métodos) de otra clase
La herencia se indica con la palabra reservada “extends”
Sintaxis de la Herencia
z
z
z
z
La sintaxis es la siguiente:
class ClaseNueva extends claseVieja
La clase de la que se hereda es conocida como clase base o
padre
La clase de la que se hereda es conocida como clase derivada o
hija
Algunos lenguajes de programación orientada a objetos
permiten el concepto de herencia múltiple, es decir que una
clase pueda heredar de varias clases
La Palabra Reservada “Super”
z
Dado que la clase padre y la clase hija tendrían los mismos
métodos y atributos, debe ser posible diferenciar cuando se
quiere tener acceso a unos u otros, para esto se utiliza la palabra
reservada “super” que hace referencia a la clase padre
Interfaces
z
z
La palabra interface lleva el concepto de abstracción un paso mas
allá, permite al creador establecer la forma de una clase:
nombres de métodos, listas de parámetros y tipos de retornos,
pero no los cuerpos de los métodos
Una interfaz proporciona solo la forma, pero no la
implementación
Creación de una Interface
z
z
Se utiliza la palabra clase (interface) en vez de la palabra clave
(class), al igual que una clase solamente se puede colocar el
modificador public a la interfaz
Los métodos de una interfaz son públicos de manera automática
Implementaciones
z
z
z
Para hacer una clase que se ajuste a una interfaz particular (o a
un grupo de interfaces) se utiliza la palabra reservada
(implements)
Con esto se está indicando que la interfaz contiene la
apariencia, pero ahora se estará especificando como funciona
Una vez que se ha implementado la interfaz, esa
implementación se convierte en una clase ordinaria que puede
extenderse (heredarse) de forma normal
Diseño Orientado a Objetos
Modelo Vista Controlador
z
z
z
z
Es un patrón de arquitectura de software que separa los datos,
la parte gráfica y la lógica de negocio en tres partes:
Modelo. Clases con la información que el sistema maneja y las
operaciones
Vista. La parte gráfica del sistema
Controlador. Responde a introducidos por el usuario
Modelo
z
z
z
z
Clases de negocio
Clases encargadas de realizar las operaciones que involucran las
acciones a ejecutar para resolver un problema
Clases planas
Son aquellas clases que solo contienen atributos y métodos para
acceder a ellos ya sea para leer su información o para
modificarla