Unidad 2 - UAM Azcaptzalco - Páginas de...

26
Elementos Intermedios del Lenguaje Unidad 2

Transcript of Unidad 2 - UAM Azcaptzalco - Páginas de...

Elementos Intermedios del Lenguaje

Unidad 2

Paradigmas de ProgramaciónUn paradigma de programación se refiere a la forma en que seentiende, diseña y desarrolla una aplicación

ImperativoDeclarativoFuncionalOrientado a Objetos

Paradigma Orientado a ObjetosLleva al proceso de programación llamado ProgramaciónOrientada a Objetos (OOP)

Las unidades de datos son vistas como objetos en lugar deunidades pasivas

Cada objeto es implementado como una unidad bien definida yseparada del resto

Conceptos Fundamentales

AbstracciónClase

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, sedefine en el contexto de un problema

ObjetoUn objeto es la instancia de una clase. Esto a grandes rasgos significaque todos los objetos son de un cierto tipo o más bien de una ciertaclase

Interfaz de una ClaseUna vez que se ha creado una clase, se pueden construir tantosobjetos como se necesiten para la solución del problema, paracomunicar un objeto con otros, se maneja el concepto deinterfaz

Los elementos de una interfaz son:Atributos, datos miembro o camposMétodos

AtributosTambién conocidos como datos miembro o campos, puede serun objeto de cualquier tipo con el que se puede tener unacomunicación, también puede ser un dato primitivo

Si es un objeto, primero debe inicializarse para conectarse a unobjeto real, si es un tipo primitivo, es posible inicializarla almomento de definir la clase

MétodosTambién conocidas como funciones miembro, determinan losmensajes que pueden recibir un objeto. Las partesfundamentales de un método son:

Tipo de retornoNombre del métodoLista de parámetrosModificadores

Firma de un MétodoFirma

La firma de una operación se define por el tipo y número deargumentos y el tipo de resultados que devuelve

ParametrizaciónLa parametrización de una operación está definida por el número ytipo de argumentos de cada método

Sobre Carga de MétodosEs posible tener métodos con el mismo nombre

Se deben distinguir en base al tipo de los parámetros quereciben

Los parámetros deben ser diferentes o en orden diferente

No se distinguen por el tipo de dato de retorno

Métodos ConstructoresEs un método especial que garantiza que cada objeto seinicialice

El nombre del constructor es el nombre de la clase

Existe un constructor por defecto que no es necesario incluir amenos que se esté manejando la sobre carga del constructor

Acceso a MétodosDesde la misma clase

Los métodos de una clase pueden ser accedidos solo utilizando elnombre del método siempre y cuando se invoque desde la mismaclase

Desde otras clasesPara tener acceso a los métodos de una clase diferente, se utiliza eloperador punto, es decir:

objeto.nombreMetodo(parámetros)

PaquetesEs 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 concomportamiento similar

VisibilidadEstablece la proporción en que otras clases podrán acceder a losatributos o utilizar las operaciones de una determinada clase

Tipos de visibilidad:PúblicaPrivadaProtegidaAmistosa

Visibilidad Pública y PrivadaLos elementos declarados como públicos (public) son accesiblestanto desde fuera como desde dentro de la clase

Los elementos declarados como privados (private) sonaccesibles sólo desde la misma clase donde fueron definidos

Visibilidad Protegida y AmistosaLos elementos declarados como protegidos (protected) sonaccesibles desde la misma clase donde fueron definidos y en sussubclases 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 servisto por las clases que están en el mismo paquete

Conceptos Avanzados

HerenciaLa herencia es una parte integral de los lenguajes deprogramación orientada a objetos

Permite que una clase herede las propiedades (atributos ymétodos) de otra clase

La herencia se indica con la palabra reservada “extends”

Sintaxis de la HerenciaLa sintaxis es la siguiente:

class ClaseNueva extends claseVieja

La clase de la que se hereda es conocida como clase base opadre

La clase de la que se hereda es conocida como clase derivada ohija

Algunos lenguajes de programación orientada a objetospermiten el concepto de herencia múltiple, es decir que unaclase pueda heredar de varias clases

La Palabra Reservada “Super”Dado que la clase padre y la clase hija tendrían los mismosmétodos y atributos, debe ser posible diferenciar cuando sequiere tener acceso a unos u otros, para esto se utiliza la palabrareservada “super” que hace referencia a la clase padre

InterfacesLa palabra interface lleva el concepto de abstracción un paso masallá, 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 laimplementación

Creación de una InterfaceSe utiliza la palabra clase (interface) en vez de la palabra clave(class), al igual que una clase solamente se puede colocar elmodificador public a la interfaz

Los métodos de una interfaz son públicos de manera automática

ImplementacionesPara hacer una clase que se ajuste a una interfaz particular (o aun grupo de interfaces) se utiliza la palabra reservada(implements)

Con esto se está indicando que la interfaz contiene laapariencia, pero ahora se estará especificando como funciona

Una vez que se ha implementado la interfaz, esaimplementación se convierte en una clase ordinaria que puedeextenderse (heredarse) de forma normal

Diseño Orientado a Objetos

Modelo Vista ControladorEs 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 lasoperaciones

Vista. La parte gráfica del sistema

Controlador. Responde a introducidos por el usuario

ModeloClases 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