Final Programacion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 22

Abstracción

La abstracción es un proceso de interpretación y diseño que implica reconocer y


enfocarse en las características importantes de una situación u objeto, y filtrar o
ignorar todas las particularidades no esenciales.
o Dejar a un lado los detalles de un objeto y definir las características
específicas de éste, aquellas que lo distingan de los demás tipos de
objetos.
o Hay que centrarse en lo que es y lo que hace un objeto, antes de decidir
cómo debería ser implementado.
o Se hace énfasis en el qué hace más que en el cómo lo hace

Ejemplo: Imaginemos que queremos aplicar la abstracción a las aves:

Objeto: Pajaro

Caracteristicas:
o Pico
o Alas
o Patas
o Plumas
Funcionalidades:
o Volar
o Picar
o Aterrizar
Clase
La clase es un modelo o prototipo que define las variables y métodos comunes a
todos los objetos de cierta clase. También se puede mencionar que una clase es
una plantilla genérica para un conjunto de objetos de similares características. Una
clase define el estado y el comportamiento que todos los objetos creados a partir de
esa clase tendrán.

Ejemplo:

Ejemplo desarrollado en Java:


Ejemplo desarrollado en C++:
Ejemplo desarrollado en Python:
Atributo

Es una característica de un objeto, que ayuda a definir su estructura y permite


diferenciarlo de otros objetos. Se define con un identificador y un tipo, el cual indica
los valores que puede almacenar. El conjunto de valores de los campos definen el
estado del objeto.

Métodos
Los métodos son los comportamientos o conductas de un objeto y permite identificar
la forma en que actúa respecto a su entorno o respecto a otros objetos. Además,
representa una operación o función que un objeto realiza. El conjunto de los
métodos de un objeto determinan el comportamiento general del objeto.
Objeto

Los objetos de software, al igual que los objetos del mundo real, también tienen
características y comportamientos. Un objeto de software mantiene sus
características en uno o más atributos e implementa su comportamiento con
métodos.

o Es una entidad real o abstracta, con un papel definido en el dominio del


problema.
o Un objeto es una instancia de una clase, que tiene: identidad,
estado(atributos) y comportamiento(metodos).
Para el ejemplo anterior de la Clase UniversityStudent (Estudiante universitario), la
creacion de objetos se haria de la siguiente forma:
Instancia

Es la particularización, realización específica u ocurrencia de una determinada


clase, entidad o prototipo. Una instancia de una clase es un objeto.

Ejemplo:

Si se tiene la anterior clase Animal, se podría crear una instancia de esa clase
como un objeto.

En este caso, una instancia de la clase Animal es la creación de un nuevo objeto


(perro) de nombre"Zeus" y raza "labrador". También se puede definir una instancia
de una clase dentro de otra clase como el siguiente ejemplo .
Como se puede observar, la clase Estudiante tiene una instancia de la
clase Nota como atributo (evaluación).

Diagramas de clases

Cuando se está planteando el diseño y el modelo de los objetos mediante la


abstracción, existe una forma de plasmar esos prototipos a través de un diagrama
de clases. Formalmente, se describe como un tipo de diagrama de estructura
estática que representa la estructura de un sistema mostrando las clases, sus
atributos, operaciones (o métodos), y las relaciones entre los objetos.
En los diagramas de clase, se tienen notaciones que son comunes dentro del
lenguaje de modelado unificado (UML). Por ejemplo, la herencia se dibuja mediante
un triángulo donde su eje superior apunta a la clase padre. La visibilidad de los
atributos que tiene la clases se denota con un + (público), - (protegido), #
(protegido). La relación que tiene un objeto con otro se representa dependiendo de
su categoría, una relación de asociación es una línea sencilla que une las dos clases
vinculadas, una relación de agregación (existe una instancia de un objeto en una
clase) se describe mediante un rombo vacío y una relación de composición(la
existencia de una clase depende absolutamente de otra) se representa con un
rombo relleno.

Para este ejemplo concretamente, la clase Empleado y la clase Cliente heredan de


la clase Persona. Todos los atributos de las clases son privados, como se detalla
en la clase Persona con el signo negativo antes de nombre y edad. Además, existe
una relación de composición entre la clase Empleado y la clase Empresa, es decir,
si un objeto Empresa deja de existir, la clase Empleado también va a dejar de
existir.

Constructor

Cuando se crea un objeto es necesario inicializar sus variables con valores


coherentes. Esto se hace por medio de un constructor que tiene las siguientes
características: Se llama igual que la clase. Retorna una instancia de una clase
Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones. De
entre los que existan, tan sólo uno se ejecutará al crear un objeto de la clase.

Constructor en Python y Constructor en PHP

Clase Abstracta

Este tipo de clases nos permiten crear "métodos generales", que recrean un
comportamiento común, pero sin especificar cómo lo hacen. A nivel de código tiene
por particularidad que algunos de sus métodos no tienen “cuerpo de declaración“.

o Una clase que declara la existencia de métodos pero no la implementación


de dichos métodos (o sea, las llaves { } y las sentencias entre ellas), se
considera una clase abstracta.
o Una clase es declarada abstracta cuando no es posible crear instancias de
ella.
o Una clase debe ser declarada abstracta si posee al menos un método
declarada abstracto.
o Un método abstracto es aquel que no posee implementación.

Clases abstractas vs Interfaces

Interfaz

Es un conjunto de métodos abstractos y de constantes cuya funcionalidad es la de


determinar el funcionamiento de una clase, es decir, funciona como un molde o
como una plantilla. También es una descripción de las acciones que un objeto puede
hacer. En programación orientada a objetos una interfaz X describe todas las
funciones que un objeto debe tener para poder ser un X.

o Una interface es una variante de una clase abstracta con la condición de que
todos sus métodos deben ser abstractos. Si la interface va a tener atributos,
éstos deben llevar las palabras reservadas static final y con un valor inicial
ya que funcionan como constantes por lo que, por convención, su nombre va
en mayúsculas.
o Una clase implementa una o más interfaces (separadas con comas ",") con
la palabra reservada implements.
o La principal diferencia entre interface y abstract es que una interface
proporciona un mecanismo de encapsulación de los protocolos de los
métodos sin forzar al usuario a utilizar la herencia.
Ejemplo:

Un ejemplo de uso de una interfaz se presenta en la siguiente imagen a través de


un diagrama de clases, donde las clases InstrumentoMusical y Sirena implementan
de la interfaz Sonoro que cuenta con la declaración del método sonar(volumen:
int).
Encapsulamiento

o Es la propiedad que permite asegurar que la información de un objeto está


oculta del mundo exterior.
o El encapsulamiento consiste en agrupar en una Clase las
características(atributos) con un acceso privado y los comportamientos
(métodos) con un acceso público.
o Acceder o modificar los miembros de una clase a través de sus métodos.
Ejemplo:
Cuando no hay encapsulamiento se pueden presentar problemas:
Podemos ver que cuando no hay encapsulamiento los atributos pueden tomar
valores inconsistentes, lo cual seria fatal para cualquier sistema.

Aplicando el encapsulamiento tenemos:


Con el resultado anterior vemos que el encapsulamiento nos ayuda a proteger la
integridad de los datos y nos asegura que los atributos de nuestra clase solo podran
ser accedidos a traves de los metodos definidos en dicha clase.

Ejemplo de encapsulamiento en C++:


Ejemplo de encapsulamiento en Python:

Herencia

Es una propiedad que permite crear clases a partir de otras ya existentes,


obteniendo características (métodos y atributos) similares a los ya existentes.En
otras palabras la nueva clase (subclase o clase derivada) puede utilizar la misma
implementación de su superclase (clase base) o especificar una nueva
implementación.
o Es la relación entre una clase general y otra clase mas especifica.
o Es un mecanismo que nos permite crear clases derivadas a partir de clases
base.
o Nos permite compartir automáticamente métodos y datos entre clases,
subclases y objetos. Por ejemplo: Si declaramos una clase párrafo derivada
de un clase texto todos los métodos y variables asociadas con la clase texto
son automáticamente heredados por la subclase párrafo.

Herencia simple: Es cuando una clase hereda de sólo una clase base.
La clase B hereda de la clase A.

Ejemplo:

La clases Circle, Line y Triangle heredan todos los atributos y métodos de la


clase Shape.

Herencia múltiple: Es cuando una clase hereda de dos o más clases base.
La clase C hereda tanto de la clase A como de la clase B.

Ejemplo:

En este ejemplo, las clases Passenger y Employee heredan de la


clase Human y las clases FlyingPlane y GroundPlane heredan de la
clase Plane.
h5>
Polimorfismo

Son comportamientos diferentes, asociados a objetos distintos, pueden compartir el


mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento
correspondiente al objeto que se esté usando.

El método hablar puede ser sobreescrito por cualquier entidad (humano,


perro, pato, gato).
Ejemplo:
Ambas clases deben sobreescribir el método getArea() puesto que se
calculan de diferentes maneras en cada caso.

También podría gustarte