Está en la página 1de 11

Universidad Interamericana de Puerto Rico

Recinto Metropolitano

Informe Escrito

Angel M. Ruiz
M00279003

1
Índice
Pagina
Introducción ------------------------------------------------------------------------------------------------- 3

Clases y Objetos ------------------------------------------------------------------------------------------- 4

Instancias, constructores y métodos ----------------------------------------------------------------- 6

Patrones de diseño --------------------------------------------------------------------------------------- 7

Herencia de clase ----------------------------------------------------------------------------------------- 8

Encapsulación y Polimorfismo ------------------------------------------------------------------------ 10

2
Introducción

El siguiente informe escrito se presenta como parte de los requisitos del CURSO ECMP

5245. En el mismo se estará presentado todo lo relacionado a los siguientes temas:

Clases y Objetos, Instancias, constructores y métodos, patrones de diseño,

herencia de clase y encapsulación y poliformismo Luego de haber visto cada uno de

los puntos antes mencionados, he podido ampliar un poco más la importancia que tienen

cada uno de estos conceptos, y como podemos utilizarlos para comprender y resolver

problemas en una amplia gama de contextos, no solo en el campo de la informática

Ciencias.

3
Clases y Objetos

En terminología orientada a objetos, una clase es una plantilla para definir

objetos. Especifica los nombres y tipos de variables que pueden existir en un objeto, así

como los "métodos", procedimientos para operar en esas variables. Una clase puede

considerarse como un "tipo", siendo los objetos una "variable" de ese tipo. Se pueden

crear varios objetos o instancias de una clase en un solo programa HLU, del mismo modo

que declara varias variables del mismo tipo en cualquier programa.

Por ejemplo, la clase TextItem es una plantilla para crear un objeto que contiene

una cadena de texto. Este objeto tendrá un conjunto particular de atributos de texto, como

fuente, tamaño y color. Si establecemos los valores de las variables del objeto - recursos

- de cierta manera, podemos crear el objeto TextItem "Hello World". Los recursos que

están disponibles para los objetos de la clase TextItem incluyen la cadena de texto ("Hola

mundo" en este caso), el tipo de fuente, el color de los caracteres, el tamaño de los

caracteres, el ancho de línea de los caracteres, etc. Por tanto, un objeto TextItem es una

instancia de la clase TextItem con un conjunto de valores asignados a los recursos

asociados. Podemos crear un segundo objeto TextItem si queremos con un nuevo

conjunto de valores de recursos como: "ESTE TAMBIÉN ES UN OBJETO TEXTITEM".

Clases vs Objeto

Mucha gente se confunde con la diferencia entre clase y objeto. La diferencia es

simple y conceptual. Una clase es una plantilla para objetos. Una clase define las

propiedades del objeto, incluido un rango válido de valores y un valor predeterminado.

Una clase también describe el comportamiento de un objeto. Un objeto es un miembro o

una "instancia" de una clase. Un objeto tiene un estado en el que todas sus propiedades

4
tienen valores que usted define explícitamente o que están definidos por la configuración

predeterminada. Esta sutil diferencia conceptual entre clases y objetos muestra por qué

hay una tendencia a querer usarlos indistintamente.

Understanding classes and objects. (n.d.). Retrieved February 2, 2021, from


https://www.ncl.ucar.edu/Document/HLUs/User_Guide/classes/classoview.shtml

5
Instancias, contructores y metodos

Los constructores se utilizan para inicializar el estado del objeto. Al igual que

los métodos, un constructor también contiene una colección de declaraciones (es decir,

instrucciones) que se ejecutan en el momento de la creación del objeto. Cada vez que

se crea un objeto usando la palabra clave new (), se invoca al menos un constructor

(podría ser el constructor predeterminado) para asignar valores iniciales a los miembros

de datos de la misma clase.

En la programación, un método es una subrutina cuyo código es definido en

una clase y puede pertenecer tanto a una clase, como es el caso de los métodos de clase

o estáticos, como a un objeto, como es el caso de los métodos de instancia.

Análogamente a los procedimientos en lenguajes imperativos, un método consiste

generalmente de una serie de sentencias para llevar a cabo una acción, un juego de

parámetros de entrada que regularán dicha acción o, posiblemente, un valor de salida (o

valor de retorno) de algún tipo.

Una instancia (en inglés, instance) es la particularización, realización específica

u ocurrencia de una determinada clase, entidad (modelo entidad-relación) o prototipo.

En los lenguajes de programación orientada a objetos un objeto es una instancia de una

clase. Esto es, un miembro de una clase que tiene atributos en lugar de variables. En un

contexto del mundo real, podríamos pensar en "Casa" como una clase y en un chalet

como una instancia de esta e incluso otro chalet u otro tipo de casa como puede ser un

apartamento como otra instancia. En este caso no importa el tipo de casa, si fuese de

nuestro interés modelarlo y especificarlo, diferenciaríamos entre un chalet y un

apartamento con dos clases, entidades o prototipos diferentes

6
Patrones de diseño

Los patrones de diseño son unas técnicas para resolver problemas comunes en

el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una

solución sea considerada un patrón debe poseer ciertas características. Una de ellas es

que debe haber comprobado su efectividad resolviendo problemas similares en

ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable

a diferentes problemas de diseño en distintas circunstancias.

Las ventajas del uso de patrones son evidentes:

• Conforman un amplio catálogo de problemas y soluciones

• Estandarizan la resolución de determinados problemas

• Condensan y simplifican el aprendizaje de las buenas prácticas

• Proporcionan un vocabulario común entre desarrolladores

• Evitan “reinventar la rueda”

7
Herencia de Clases

La herencia de clases es uno de los conceptos básicos de la programación

orientada a objetos. Decir que una clase hereda de otra quiere decir que esa clase

obtiene los mismos métodos y propiedades de la otra clase. Permitiendo de esta forma

añadir a las características heredadas las suyas propias.

Supongamos que tenemos una clase "Persona" con los métodos y propiedades

básicas de un objeto persona como podrían ser "caminar" o "hablar", podríamos tener

otras clases como "Guillermo" o "Elder" que comparten todas las características de una

"Persona" pero que añaden características propias. Por lo que "Guillermo" y "Elder"

pueden realizar las mismas funciones que puede realizar una "Persona" y además cada

una puede realizar las suyas propias, por ejemplo, "Guillermo" sabe nadar, pero "Elder"

no, y "Elder" sabe bailar reggaetón, pero "Guillermo" no.

En términos de programación estaríamos diciendo que "Guillermo" y "Elder" son

dos clases especializadas que heredan o extienden de la superclase "Persona".

Existen dos tipos de herencia:

• Herencia por especialización

• Herencia por generalización

En realidad la herencia es la misma, esta es una diferenciación puramente conceptual

sobre la forma en que se a llegado a ella.

8
Una herencia por especialización es la que se realiza cuando necesitamos crear una

clase nueva que disponga de las mismas características que otra pero que le añada

funcionalidades. Por ejemplo, si tenemos una clase que genera un botón simple, y

necesitamos crear un botón que sea igual que el anterior pero que además añada un

efecto al ser clicado.

La herencia por generalización es la que realizamos cuando tenemos muchas clases

que comparten unas mismas funcionalidades y por homogeneizar las partes comunes se

decide crear una clase que implemente toda esa parte común y se dejan solo las partes

especificas en cada clase. Por ejemplo, si tenemos clases para dibujar formas

geométricas todas ellas

disponen de las mismas propiedades (un color de fondo, color de linea, etc..), todas estas

características pueden estar en una clase general de la que hereden todas las clases

concretas, evitando tener que escribir todo ese código común en todas ellas.

Cristalab, T. (n.d.). Programación orientada a objetos: Herencia De clases. Retrieved


February 4, 2021, from http://www.cristalab.com/tutoriales/programacion-
orientada-a-objetos-herencia-de-clases-c261l/

9
Encapsulacion y Polimorfismo

Encapsulamiento. En informática es un mecanismo que consiste en organizar

datos y métodos de una estructura, conciliando el modo en que el objeto se implementa,

es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados.

Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.

Proceso de encapsulamiento

Consiste en unir en la Clase las características y comportamientos, esto es, las variables

y métodos. Es tener todo esto es una sola entidad. La abstracción y la encapsulación no

son lo mismo, pero si están relacionadas porque sin encapsulación no hay abstracción,

ya que si no se encapsulan los componentes no podríamos dar una abstracción alta del

objeto al cual nos estamos refiriendo.

Ventajas

• Lo que hace el usuario puede ser controlado internamente (incluso sus errores),

evitando que todo colapse por una intervención indeseada.

• Al hacer que la mayor parte del código esté oculto, se pueden hacer cambios y/o

mejoras sin que eso afecte el modo de como los usuarios van a utilizar el código.

El concepto de polimorfismo es en realidad algo muy básico. Realmente, cuando

estamos aprendiendo Programación Orientada a Objetos (también conocida por sus

siglas POO / OOP) muchos estudiantes nos hacemos un embolado tremendo al tratar de

entender el concepto, pero en su base es algo extremadamente sencillo.

10
Definición: El polimorfismo es una relajación del sistema de tipos, de tal manera que

una referencia a una clase (atributo, parámetro o declaración local o elemento de un

vector) acepta direcciones de objetos de dicha clase y de sus clases derivadas

Encapsulamiento. (n.d.). Retrieved February 4, 2021, from


https://www.ecured.cu/Encapsulamiento

Polimorfismo en Programación Orientada a Objetos. (n.d.). Retrieved February 6, 2021, from


https://desarrolloweb.com/articulos/polimorfismo-programacion-orientada-objetos-
concepto.html

11

También podría gustarte