Clase N° 5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

2° Año - 1° Cuatrimestre

Docente a cargo: Rocio Coccia


Año: 2023
PROGRAMACIÓN I

¡Bienvenidos a la quinta clase!

En este encuentro desarrollaremos los siguientes temas:


● Programación orientada a objetos.
● Programación y el rol de la abstracción.
● Procedimientos, módulos, tipos abstractos de datos.

Los objetivos de esta clase:


● Comprender el concepto de abstracción.
● Relacionar el concepto de abstracción con los objetos del mundo
real.
● Estudiar y aprender sobre un nuevo paradigma de programación.
● Estudiar y diferenciar los componentes de la POO.

2
PROGRAMACIÓN I

Programación Orientada a Objetos (POO)


Es un paradigma de programación, otros conocidos son:
● El paradigma de la programación imperativa (Pascal o C).
● El paradigma de la programación lógica (PROLOG).
● El paradigma de la programación funcional (Lisp).
Kuhn (1970)1 describe un paradigma como el
conjunto de teorías, estándares y métodos que
juntos representan un medio de organización
del conocimiento: es decir, un medio de
visualizar el mundo.
La orientación a objetos puede describirse
como el conjunto de disciplinas que desarrollan y modelizan software para
crear sistemas complejos a partir de componentes.
Las herramientas y conceptos que proporciona permiten modelar y
representar el mundo real de una manera fiel o verídica posible,
permitiendo representar los problemas del mundo real de modo fácil y
natural. Las técnicas orientadas a objetos proporcionan mejoras y
metodologías para construir sistemas de software a partir de software
modularizado y reutilizable, lo cual ayuda a crear sistemas flexibles,
mantenibles y capaces de evolucionar para adaptarse a los cambios.
El soporte fundamental es el modelo objeto y sus cuatro elementos
(propiedades) más importantes son:
● Abstracción.
● Encapsulación.
● Modularidad.
● Jerarquía.
En esta clase comenzaremos con la abstracción.

La abstracción es la propiedad que permite representar las


características esenciales de un objeto, sin preocuparse de las
restantes características (no esenciales). Es decir, que se
centrará en la vista externa del objeto, de modo que sirva para
separar el comportamiento esencial de un objeto de su
implementación.
La clase, será el elemento clave de la POO. Esta, se puede definir como
una descripción abstracta de un grupo de objetos, cada uno de los

1
Kuhn, Tomhas. “La estructura de la Revolución Científica” 2° edición. Universidad de Chicago, 1970.

3
PROGRAMACIÓN I

cuales se diferencia por su estado específico y por la posibilidad de


realizar una serie de operaciones. Por ejemplo:
Una lapicera de pluma es un objeto que tiene un estado,
puede estar vacía o llena, sobre la cual se pueden realizar
una serie de operaciones como por ejemplo: escribir, poner
o sacar el capuchón, cargar de tinta si está vacía, etc.

El rol de la abstracción
Wulft describe: “Los humanos hemos desarrollado una técnica
excepcionalmente potente para tratar la complejidad: abstraernos de ella.
incapaces de dominar en su totalidad los objetos complejos, se ignoran
los detalles no esenciales, tratando en su lugar con el modelo ideal del
objeto y centrándonos en el estudio de sus aspectos esenciales.”
Añadiendo más definiciones a las planteadas anteriormente, podríamos
decir que es la capacidad para encapsular y aislar la información del
diseño y ejecución.
Normalmente, nosotros como personas solemos armar “modelos
mentales” (vista simplificada) de partes del mundo, tratando de
comprender cosas con las cuales podemos interactuar. Por ejemplo: un
mapa, este debe ser más sencillo que el territorio que modela. Podríamos
encontrarnos con un mapa de viaje que solo muestre las rutas principales
o más seguras para viajar, un mapa de senderismo tendría información
como los distintos accidentes geográficos, alturas, posibles refugios, etc.
Cualquiera de estos mapas dejaría afuera datos irrelevantes como por
ejemplo, la fauna o la flora. Es por esto que podemos denominar a la
abstracción como un proceso natural porque iremos pensando en la
información importante que nos permitirá cumplir nuestro objetivo.
Con respecto al desarrollo de software, los mecanismos de abstracción
que han conducido al desarrollo profundo de los objetos son: los
procedimientos, módulos, tipos abstractos de datos (TAD) y
objetos.

4
PROGRAMACIÓN I

Funciones y procedimientos
Matemáticamente hablando, una función será aquella que reciba un
número de argumentos para llegar a un resultado final. La forma en que
se declara una función es la siguiente:
<tipo_de_resultado> funcion <nombre_funcion> (lista de parámetros)
[declaraciones locales]
inicio
<acciones> // cuerpo de la función
devolver (<expresión>)
fin_función
A continuación, un ejemplo en java

Siguiendo la teoría sobre la declaración de la función con su ejemplo:


<tipo_de_resultado> vemos que dice “public static int” lo cual significa
que mi función devuelve un número entero (int).
<nombre_funcion> en este caso la función se llama “sumaNumeros”
Lista de parámetros. Los parámetros o argumentos con su tipo de dato.
En el ejemplo recibe como parámetro dos números enteros.
<acciones> dentro de la variable “resultado” la cual es de tipo entero
(int) voy a almacenar el resultado de la operación num1 + num2.

5
PROGRAMACIÓN I

<devolver> en Java se expresa como “return” y como se puede ver, voy a


devolver el valor almacenado en mi variable “resultado”.
En la clase main, que comienza en la línea 5, vemos que se llama a
nuestra función “sumaNumeros (5,10)” para que sea ejecutada. Como
vemos, le precede una variable para almacenar ese resultado. El método
“public static void main” es un método especial, es el que permite
ejecutar el código de un programa, o aplicación. Es decir, todo tu código
debe ser llamado en esa función o método, dado que el sistema interno
de Java solo leerá el código almacenado en dicha función.
el comando “System.out.println” nos permitirá visualizar el resultado por
consola.
A diferencia de la función, el procedimiento ejecuta un proceso
específico sin devolver un resultado. Su declaración es similar a la de la
función:
procedimiento <nombre> (lista de parámetros)
<acciones>
fin_procedimiento

En el siguiente ejemplo vemos que el procedimiento contiene la palabra


void que en inglés significa “vacio”, este procedimiento no devolverá
ningún resultado, com verás no se declara un tipo de dato.
Recibe el argumento “nombre” junto con el tipo de dato (String)y por
medio del comando “System.out.prinln” imprime el mensaje entre
paréntesis. Y por último, tampoco se encontrará la palabra “return”.
En resumen:
● El procedimiento puede devolver uno, más de uno o ningún valor.

● Los parámetros del procedimiento pueden ser por valor, por


referencia o ambos.

● El llamado al procedimiento es directo desde la aplicación.


● La función devuelve siempre un valor.

6
PROGRAMACIÓN I

● Los parámetros de la función son siempre por valor.

● Para llamar a la función hay que asignarla a la variable


correspondiente.

Módulos y abstracción de datos


Cuando estudiamos sobre ingeniería de software y la forma de resolver
problemas, hablábamos de descomponer un problema en problemas más
pequeños. Y esto es lo que realiza la “modularidad”, rompe una solución
en módulos.
La abstracción procedimental significa centrarse en lo que hace un módulo
en vez de en los detalles de cómo se implementan los detalles de sus
algoritmos. De modo similar, la abstracción de datos se centra en las
operaciones que se ejecutan sobre los datos en vez de cómo se
implementarán las operaciones. Un tipo abstracto de datos (TAD) es una
colección de datos y un conjunto de operaciones sobre esos datos. Tales
operaciones pueden añadir nuevos datos, o quitar datos de la colección, o
buscar algún dato.
La abstracción identifica los aspectos esenciales de módulos y estructura
de datos que se pueden tratar como cajas negras. La abstracción es
responsable de sus vistas externas o públicas, pero también ayuda a
identificar los detalles que debe ocultar de la vista pública (vista privada).
El principio de ocultación de la información no sólo oculta los detalles
dentro de la caja negra, sino que asegura que ninguna otra caja negra
pueda acceder a estos detalles ocultos. Por consiguiente, se deben ocultar
ciertos detalles dentro de sus módulos y TAD y hacerlos inaccesibles a
otros módulos y TAD. Un usuario de un módulo no se preocupa sobre los
detalles de su implementación y, al contrario, un desarrollador de un
módulo o TAD no se preocupa sobre sus usos. En el caso de la orientación
a objetos, las clases pueden acceder a los datos de los objetos sólo a
través de sus funciones miembro. El proceso de “ocultar” los detalles de la
implementación de una clase se denomina “ocultación de la información”.

Un TAD se compone de estructuras de datos y los procedimientos o


funciones que manipulan esas estructuras de datos.
TAD = Representación (Datos) + Operaciones (funciones, procedimientos)

Las operaciones desde un enfoque orientado a objetos se suelen


denominar métodos.
Las ventajas del TAD para los desarrolladores, son las siguientes:

7
PROGRAMACIÓN I

1. Permiten una mejor conceptualización y modelización del


mundo real. Mejoran la representación y la comprensibilidad.
Clarifican los objetos basados en estructuras y comportamientos
comunes.

2. Mejoran la robustez del sistema. Si hay características


subyacentes en los lenguajes, permiten la especificación del tipo de
cada variable. Los tipos abstractos de datos permiten la
comprobación de tipos para evitar errores de tipo en tiempo de
ejecución.

3. Mejoran el rendimiento (prestaciones). Para sistemas tipeados


(tipificados), el conocimiento de los objetos permite la optimización
del tiempo de compilación.

4. Separan la implementación de la especificación. Permiten la


modificación y la mejora de la implementación sin afectar la interfaz
pública del tipo abstracto de dato.

5. Permiten la extensibilidad del sistema. Los componentes de


software reutilizables son más fáciles de crear y mantener.

6. Recogen mejor la semántica del tipo. Los tipos abstractos de


datos agrupan o localizan las operaciones y la representación de
atributos.
El tema de TAD lo continuaremos desarrollando hasta que veamos
“Estructura de Datos”. Por lo cual pueden tomar lo presentado en esta
clase como una introducción.
A continuación, les adjunto una breve clase explicativa sobre los
conceptos de “Clases” y “Objetos”. Al final del video, se encontrarán con
una actividad no obligatoria.

POO: Clase explicativa sobre Clases y Objetos

8
PROGRAMACIÓN I

Instalar IDE
Para comenzar a trabajar con Java vamos a descargar e instalar un
entorno de trabajo. Existen varios IDE, en esta oportunidad les daré los
pasos para instalar netbeans pero también pueden utilizar eclipse.
1. Verificar el sistema operativo. Es importante saber la versión que
debemos descargar (32 bits o 64 bits).

2. Descargar JRE. Este, al igual que el siguiente, se descarga en la


página de Oracle y es posible que nos pida crear un usuario.
Cuando lo hayan descargado, ejecuta como Administrador. En este
punto es posible que si en algún momento instalamos Java nos
salga un cartel avisando que hay una versión obsoleta, esta la
pueden eliminar en el momento o luego.
a. Link:
https://www.oracle.com/ar/java/technologies/javase/javase8u
211-later-archive-downloads.html

3. Descargar JDK.
a. Link:
https://www.oracle.com/ar/java/technologies/javase/javase8u
211-later-archive-downloads.html

4. Descargar Netbeans.
a. Link: https://netbeans.apache.org/download/index.html

5. Descargar Eclipse
a. Link: https://www.eclipse.org/downloads/

9
PROGRAMACIÓN I

Referencias bibliográficas:

● Aguilar, L (1996). “Programación Orientada a Objetos”. McGraw -


Hill.

● Aguilar, L (2008). “Fundamentos de Programación”. Pearson

● Aguilar, L et al. (2008). “Estructuras de Datos en Java”. McGraw -


Hill.

Estimados alumnos, hasta aquí llegamos con el


encuentro de hoy. Espero sus consultas y participación
en el foro. Les deseo una buena jornada.
¡Saludos!
Profesora Rocio Coccia.

10

También podría gustarte