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

BITÁCORA

JUAN DAVID AREVALO ESPINOSA

UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

SISTEMATIZACIÓN DE DATOS

PROGRAMACIÓN ORIENTADA A OBJETOS

BOGOTÁ D.C

2022

1
Tabla de Contenido

1. INTRODUCCIÓN A LA PROGRAMACIÓN...………………………………………….…..4
1.1. Juego Light Bot ..……………………………………………………………………………...4
1.2. Recursos de software para desarrollo …………………………………………………..……..4
1.2.1. Dev C++………………………………………………..……………………………………...4
1.2.2. Diagrams.net……………………………………………………………………….………….4
1.2.3. NetBeans…..…………………………………………………………………………………..4
1.2.4. Java JRE……………………..………………………………………………………………...5
1.2.5. Java JDK...…………………………………………...………………………………………..5

2. LENGUAJE C++…………………………………………………………...………………....5
2.1. Palabras reservadas de C++……………………………………………………………..…….5

3. LENGUAJE JAVA ..………………………………………………………...………………..6


3.1. Historia y evolución…………………………………………………………………………...6
3.2. Máquina virtual de Java……………………………………………………………………….7
3.3. API de java…………………………...………………………………………………………..7
3.4. Tipos de datos, variables y arreglos…………………….……………………………………..9
3.4.1. Declaración de variables java……………………………………………………………...…..9
3.5. Estructuras de Control…………………………………………..…………………………....10
3.6. Palabras Reservadas……………...……………………………………….………………….10
3.7. Operadores en java…..………………………………………………….…………………....10
3.7.1. Operadores relacionales……………………………………………..……………………….11
3.7.2. Operadores aritméticos……………………………………………...……...………………..12
3.7.3. Operadores Lógicos…………………………………………..……………...………………12
3.7.4. Operadores de asignación………………………………………………..……...…………...12
3.7.5. Operador ternario especial ‘?’ …………………………………………………...…………..13

4. PROGRAMACIÓN ORIENTADA A OBJETOS…………...……………...……………….13


4.1. Historia……………………………….………………………………………...…………….13
4.2. Que es la POO……………………...………………………………………………………...14
4.3. Ventajas………………………………………………………………………………………14
4.4. Principios y característica…………………………………………………………….………14
4.4.1. Abstracción…………………………………………………………………………………...14
4.4.2. Encapsulación………………………………………………………………………………...14
4.4.3. Ocultación…………………………………………………………………………………….15
4.4.4. Modularidad…………………………………………………………………………………..15
4.4.5. Herencia………………………………………………………………………………………15
4.4.6. Polimorfismo………………………………………………………………………………….15
4.5. Ejemplos……………………………………………………………………………………...15
4.6. Elementos de POO……………………………………………………………………………15
4.6.1. Clase…………………………………………………………………………………….……15
4.6.2. Objeto…………………………………………………………………………………….…..15
4.6.3. Atributos……………………………………………………………………………………...15
4.6.4. Métodos………………………………………………………………………………………16
4.6.5. Constructor…………………………………………….…………………………………......16
4.6.6. Sobrecarga de constructores……………………………………………………………….....16

2
4.6.7. Métodos get y set………………………………………………….………………………….17
4.7. Modificador de acceso o visibilidad………………………………………………………….17
4.8. Composición………………………………………………………………………………….18
4.9. Vector de objetos……………………………………………………………………………..18

5. EL LENGUAJE UNIFICADO DE MODELADO UML…………………………………….18


5.1. Historia del lenguaje UML…………………………………………………………………...18
5.2. Que es UML………………………………………………………………………………......19
5.3. Características……………………………………………….………………………………..19
5.4. Tipos de diagramas en UML y su simbología………………………………………………..19
5.5. Diagramas de clase …………………………………………………………………………..19
5.6. Diagrama de Casos de Uso……………………………………………………………….......20
Conclusiones…………………………………………………………………………………………..20
Referencias…………………………………………………………………………………………….21

3
1. INTRODUCCIÓN A LA PROGRAMACIÓN

1.1 Juego Light Bot

Es un videojuego que realiza una introducción a la programación, enseñando comandos


básicos, contiene “avanzar”, “encender”, “saltar,” “girar izquierda”, “girar derecha” y dos
funciones “P1” y “P2” las cuales tienen la capacidad de contener hasta ocho comandos. La
idea principal de Light Bot es que el usuario
juegue con los bucles y funciones para utilizar
el menor número de comandos en la función
principal “main” y que el robot pueda cumplir
con las tareas, este programa desarrolla una
lógica en la programación. Light Bot está
disponible en las plataformas de Android y
ios, tiene una versión para niños desde los 4
años, una versión para mayores de 9 años,
estas dos versiones son pagas y cuenta con
una versión gratuita que consta de 12 niveles.
Imagen 1. Logo Lightbot
https://www.entramar.mvl.edu.ar/lightbot-tutorial/

1.2 Recursos de Software para desarrollo

1.2.1 Dev C++

Es un compilador y entorno de desarrollo integrado o en sus siglas en ingles IDE (Integrated


Development Environment) el cual es utilizado para crear aplicaciones en lenguaje de
programación C/C++. Utilizan poco espacio en el disco duro y es ideal para crear programas
pequeños, estas aplicaciones se pueden compilar rápidamente y ejecutar en forma de consola.

1.2.2. Diagrams.net

Es una aplicación web gratuita de Google Drive, se utiliza para crear una gran variedad de
diagramas desde cualquier navegador web o en el caso de querer utilizarla sin internet, esta
posee una edición de escritorio. Permite agregar imágenes, configurar los textos, elegir el tipo
de fuente, cambiar el idioma y guardar el archivo en el Drive.

1.2.3. NetBeans

Es un programa que sirve como IDE (entorno de desarrollo integrado), el cual contiene
múltiples programas para programar, como lo es: Java, C++, PHP, HTML, Ruby entre otras.
Una de las principales características es el ser un programa totalmente gratuito lo que lo
convierte en unos de los preferidos por los usuarios, además ofrece una excelente interfaz y
cuenta con un editor que completa el código, lo que lo ayuda a facilitar la programación para
usuarios principiantes.

4
1.2.4. Java JRE
Java Runtime Environment (JRE) es un conjunto de utilidades que permite la ejecución de
programas Java. JRE está formado por Java Virtual Machine (JVM), clases del núcleo de la
plataforma Java y bibliotecas de la plataforma Java de soporte, todo esto para que la app sea
funcional, se puede decir que el JRE actúa como intermediario entre el sistema operativo y
Java.

1.2.5. Java JDK


Java Development Kit (JDK) en español “Kit de Desarrollo de Java”. Se puede definir como
un conjunto de herramientas, utilidades, documentación y ejemplos para desarrollar
aplicaciones Java. Puede instalarse en una computadora local o en una unidad de red, al
instalarse en la unidad de red se puede tener las herramientas distribuidas en varias
computadoras y trabajar como una sola aplicación.

2. LENGUAJE C++
Desarrollado en 1979 C++ es un lenguaje de programación que proviene de la extensión del
lenguaje C con el objetivo de implementar la programación orientada a objetos lo que lo
convierte en un lenguaje híbrido. Se le conoce como un programa multiparadigma debido a
manejar los paradigmas de la programación, programación genérica, estructurada y orientada
a objetos.

2.1 Palabras reservadas de C++

Imagen 2.1. Palabras reservadas C++


https://www.mhe.es/universidad/informatica/8448198441/archivos/apendice_general_3.pdf

5
Imagen 2.2 Palabras reservadas C++
https://www.mhe.es/universidad/informatica/8448198441/archivos/apendice_general_3.pdf

Las palabras reservadas son identificadores reservados que tienen un significado especial y no
se pueden utilizar como identificadores en el programa, excepto si utilizan por delante el
carácter ‘@’ como prefijo.

Break quiebra o sale de un bucle.


Case: define un caso / etiqueta en una expresión de switch.
Char: nombre del tipo de datos del caracter.
class: declara una clase.
If: condicional, ejecuta el código si se cumple la condición.
else: ruta alterna en caso del if, si no se cumple se ejecuta el else.
int: nombre de tipos de datos enteros.
while: inicia un bucle “while” o en español “mientras”, bucle condicional.
void: declaración de una función que no devuelve ningún valor.
switch: ejecuta el código de un condicional a las posibles opciones de una variable.

3. LENGUAJE JAVA

3.1 Historia y evolución

En 1992 la necesidad de un lenguaje de programación que fuera independiente de la


plataforma un lenguaje que pudiera ser utilizado para crear software que pudiera correr en
dispositivos electrodomésticos, como hornos de microondas y controles remotos llevo a la
creación de Oak el cual fue renombrado en 1995 como Java. World Wide Web fue otro factor
muy importante en el crecimiento de Java, esto es debido a la portabilidad que tenía Java y la
que se necesitaba en World Wide Web. Java hereda varias características de C y C++ así
como también utilizaron la programación orientada a objetos, Java es un lenguaje que tiene
sus fundamentos en las necesidades y la experiencia de las personas que lo diseñaron. Por este
motivo, Java es el lenguaje de los programadores. En segundo lugar, Java es un lenguaje
coherente y consistente lógicamente. En tercer lugar, excepto por las restricciones que impone

6
el ambiente de Internet, Java permite al programador un control total. En otras palabras, Java
no es un lenguaje de entrenamiento; es un lenguaje para programadores profesionales.

La versión inicial de Java aún y cuando fue revolucionaria no marcó el fin de la era
innovadora de Java. A diferencia de otros lenguajes de programación que normalmente se van
estableciendo a base de pequeñas mejoras incrementales, Java ha continuado evolucionando a
un ritmo explosivo. Java incorporaba muchos elementos nuevos en sus bibliotecas, redefinía
la forma en que los eventos eran gestionados y reconfiguraba muchas características de la
biblioteca 1.0. También declaraba obsoletas algunas de las características definidas por Java
1.0. Por lo tanto, Java 1.1 añadía y eliminaba atributos de su versión original. La siguiente
versión fue Java 2, donde el «2» indicaba «segunda generación». La creación de Java 2 fue un
parte aguas que marcaba el comienzo de la «era moderna» de este lenguaje de programación
que evolucionaba rápidamente. La primera versión de Java 2 tenía asignado el número de
versión 1.2, cosa que puede resultar extraña.

3.2 Máquina virtual de Java

A la hora de compilar una aplicación escrita en Java, esta no se compila a lenguaje maquina
como ocurría con anteriores programas, Java como aplicaciones .NET utilizan un lenguaje
intermedio denominado Byte Code, la máquina virtual es la que ejecuta este código, esta es
una idea que viene desde los 80’ cuando Pascal lo implementaba. En el caso de Java, la Java
Virtual Machine toma el código Byte Code lo compila en la aplicación java y a su vez al
código nativo de la plataforma en la que se está ejecutando. La ventaja principal de este
esquema es que es muy fácil crear un programa en Java y que luego éste se pueda ejecutar en
cualquier sistema operativo para el cual exista una implementación de la JVM. Por ejemplo,
el mismo programa Java puede correr en Windows, Linux, Macintosh (Mac), etc. Esto
garantiza la portabilidad de Java.

Seguridad
Los programas que un usuario descarga pueden ser peligrosos, para evitar esto Java confina a
los applets a ser ejecutados en un ambiente controlado sin permitirle el acceso a los recursos
completos de la computadora. La posibilidad de descargar applets con la certeza de que no
harán ningún daño y que no producirán violaciones en la seguridad del sistema es considerada
por muchos la característica más innovadora de Java.

Portabilidad
Para Java era necesario crear un código ejecutable portable para que cualquier computadora
conectada a la red pueda ejecutar este código.

El bytecode es un conjunto de instrucciones altamente optimizado diseñado para ser ejecutado


por una máquina virtual la cual es llamada Java Virtual Machine (JVM), este bytecode fue la
implementación en la compilación del programa, no obstante, el hecho de que un programa en
Java es ejecutado por la JVM ayuda a resolver los problemas asociados con los programas
basados en Web.

Al poco tiempo de la salida de Java, se crea Servlets el cual sirve para ejecutarse en un
servidor, esta creación los lleva a encabezar como uno de los mejores programas. Los servlets
son altamente portables debido a que como todos los programas de Java son compilados a

7
bytecode y ejecutados por una máquina virtual, para ser utilizado solo requiere contar con un
servidor JVM y un contenedor de servlets.

Las tareas principales de JVM son:

● Reservar espacio en memoria para los objetos creados.


● Liberar la memoria no usada (garbage collection).
● Asignar variables a registros y pilas.
● Llamar al sistema huésped para ciertas funciones.
● Vigilar el cumplimiento de las normas de seguridad de las aplicaciones de Java.

3.3 API de Java

La API Java es una interfaz de programación de aplicaciones provista por los creadores del
lenguaje de programación Java, que da a los programadores los medios para desarrollar
aplicaciones Java. Es un conjunto de reglas (código) y especificaciones que las aplicaciones
pueden seguir para comunicarse entre ellas: sirviendo de interfaz entre programas diferentes
de la misma manera en que la interfaz de usuario facilita la interacción humano-software. Las
clases Java se proporcionan para interactuar directamente con todos los objetos y valores.
De manera general, la API de Java ofrece las siguientes características:
● Arranque de destinos con tecnología Wake-on-LAN dentro de tareas.
● Tareas de planificación.
● Creación de tareas.
● Creación de tareas abiertas. Cada destino ejecuta una tarea abierta una sola
vez.
● Tareas de supervisión.
● Tareas de cancelación.
● Gestión de la configuración del servidor.
● Gestión de destinos, como por ejemplo adición de destinos, eliminación de destinos o
modificación de las propiedades de un destino.
● Gestión de perfiles de sistema.
● Gestión de configuraciones de sistema operativo.
● Gestión de módulos de software.
● Gestión de plantillas de despliegue.

3.4 Tipos de datos, variables y arreglos

En Java existen ocho tipos de datos primitivos que se pueden clasificar en:

● Números enteros (byte, short, int, long).


● Números reales (float, double).
● Carácter (char).
● Booleano o lógico (boolean).

8
De todos ellos, salvo del tipo boolean que únicamente puede ser true o false, en la siguiente
tabla se muestran sus posibles valores mínimo y máximo:

Imagen 6. Tipos de datos


https://www.abrirllave.com/java/tipos-de-datos-primitivos.php

3.4.1 Declaración de variables Java

Una variable se utiliza para el almacenamiento de datos o información dentro de la memoria


de la computadora. Para declarar una variable en Java primero hay que indicar el tipo de dato
después se le asignará un nombre.

Imagen 7. Programa Netbeans


Autoría propia

En la imagen 6 se puede observar cómo se declara una variable, en la segunda línea de la


imagen se evidencia como se declara la variable y se le asigna un valor.

En el caso de los arreglos o vectores hay que identificar el tipo de dato y el nombre por
ejemplo:

Imagen 8. Programa NetBeans


Autoría propia

En la imagen 8 se observa la manera clásica en Java de declarar un vector aunque existe otra
manera, que es:

9
Imagen 9.. Programa NetBeans
Autoría propia

En la imagen tenemos el ejemplo con un tipo de dato ‘char’ y le asignamos el nombre “vec”

Imagen 10.. Programa NetBeans


Autoría propia

3.5 Estructuras de control

Las estructuras de control determinan la secuencia de ejecución de las sentencias de un


programa. Las estructuras de control se dividen en tres categorías:

● Secuencial: El orden en que se ejecutan por defecto las sentencias de un programa es


secuencial. Esto significa que las sentencias se ejecutan en secuencia, una después de
otra, en el orden en que aparecen escritas dentro del programa.
● Condicional o Selectiva: La estructura condicional determina si se ejecutan unas
instrucciones u otras según se cumpla o no una determinada condición.
● Iterativa o Repetitiva: Permiten ejecutar de forma repetida un bloque específico de
instrucciones. Las instrucciones se repiten mientras o hasta que se cumpla una
determinada condición. Esta condición se conoce como condición de salida.

3.6 Palabras Reservadas

Imagen 11 Palabras reservadas JAVA


https://www.mhe.es/universidad/informatica/8448198441/archivos/apendice_general_3.pdf

10
3.7 Operadores en Java

Un operador lleva a cabo operaciones sobre uno (operador unario), dos (operador binario) o
tres (operador ternario) datos u operandos de tipo primitivo devolviendo un valor
determinado también de un tipo primitivo.

3.7.1 Operadores relacionales


En java disponemos de los operadores relacionales para verificar si se cumple una relación.

Imagen 12. Tabla 1.


https://es.wikibooks.org/wiki/Programación_en_Java/Operadores_relacionales

Imagen 13. Programa Java.


https://es.wikibooks.org/wiki/Programación_en_Java/Operadores_relacionales

11
En la imagen 13 podemos observar un ejemplo de un programa en Java de como se utiliza los
operadores racionales.

3.7.2 Operadores aritméticos

Java cuenta con varios operadores aritméticos para datos numéricos enteros y reales.

Imagen 14. Tabla 2. Operadores aritméticos


https://www.arkaitzgarro.com/java/capitulo-4.html

3.7.3 Operadores lógicos

Imagen 15. Tabla 3. Operadores lógicos


https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=466:operadores-logicos-en-java-igual-
distinto-and-or-not-mayor-menor-cortocircuito-cu00634b&catid=68&Itemid=188

Como observamos en el ejemplo los operadores lógicos nos sirven para realizar
comparaciones, estos operadores se pueden utilizar una o más veces en una condición lo que
los convierte en una gran ayuda a la hora de programar.

3.7.4 Operadores de asignación

El operador Java más sencillo es el operador de asignación. Mediante este operador se asigna
un valor a una variable. El operador de asignación es el símbolo igual.
Imagen 16. Operador de asignación, ejemplo con las variables.

12
http://www.manualweb.net/java/operadores-asignacion-aritmeticos-java/

3.7.5 Operadores ternario especial ‘?’

Es otro operador condicional, el cual puede funcionar como intercambio del if y else, por
ejemplo:

Imagen 17. Condicional ‘if’ y ‘esle’


https://es.wikipedia.org/wiki/Operador_ternario#Java,_JSP

La imagen 17 hace referencia a el uso del condicional if, en la siguiente imagen se observa el
código anterior puede ser reemplazado por ‘?’

Imagen 18. Condicional ‘?’’


https://es.wikipedia.org/wiki/Operador_ternario#Java,_JSP

4. PROGRAMACIÓN ORIENTADA A OBJETOS

4.1. Historia.

Todo empieza en Noruega en el Centro de Cálculo Noruego cuando Krinsten Nygaard, tiene
problemas para el desarrollo de simulaciones de sistemas físicos. La solución que idearon fue
diseñar el programa paralelamente al objeto físico. Es decir, si el objeto físico tenía cien
componentes, el programa también tendría cien módulos, uno por cada pieza. Partiendo de
esta situación se desarrolló un lenguaje de programación con algunos conceptos pilares de la
Programación Orientada a Objetos. Este se denominó SIMULA 67, y fue presentado en 1967
al público.

A principios de los 70 es creado Small talk. Fue el primer lenguaje Orientado a Objetos puro
de los lenguajes Orientados a Objetos lo que lo lleva a únicamente utilizar clases y objetos
(Java usa tipos de datos primitivos).

En los 80 sale al público la ampliación de C que sería C++, un programa diseñado para el uso
de POO, gracias al fuerte apoyo que tenia C, C++ y su inclusión de POO lo llevaron a lograr
un gran éxito incluso hoy en día es uno de los programas con mayor uso y preferido por parte
de los programadores.

13
En 1996 surge un desarrollo llamado JAVA (extensión de C++). Su filosofía es aprovechar el
software existente, facilitar la adaptación del mismo a otros usos diferentes a los originales sin
necesidad de modificar el código ya existente.

Actualmente la orientación a objetos parece ser el mejor paradigma, no obstante, no es una


solución a todos los problemas. Trata de eliminar la crisis del software.

4.2. Que es la POO

La POO se define como un paradigma de la programación, fue una revolución en los años 80,
aportando una nueva visión del mundo de la programación al aportar un enfoque distinto a los
lenguajes tradicionales imperativos procedurales. La programación orientada a objetos
introdujo una nueva forma de organizar el código de un programa, agrupando por objetos, que
en sí son elementos individuales que contienen funciones e información, hoy en día no se
entiende la programación de apps para móviles o el desarrollo web de un nivel serio sin el uso
de un lenguaje POO.

Al programar orientado a objetos tenemos que aprender a pensar cómo resolver los problemas
de una manera distinta a como se realizaba anteriormente, en la programación estructurada.
Ahora tendremos que escribir nuestros programas en términos de clases, objetos, propiedades,
métodos.

4.3. Ventajas

POO cuenta con varias ventajas, entre ellas están:


● Convierte cosas complejas en estructuras simples reproducibles. ● Evita
la duplicación de código.
● Permite trabajar en equipo gracias al encapsulamiento ya que minimiza la
posibilidad de duplicar funciones cuando varias personas trabajan sobre un mismo
objeto al mismo tiempo.
● Al estar la clase bien estructurada permite la corrección de errores en varios
lugares del código.
● Protege la información a través de la encapsulación, ya que solo se puede acceder a
los datos del objeto a través de propiedades y métodos privados.
● La abstracción nos permite construir sistemas más complejos y de una forma más
sencilla y organizada.

4.4. Principios y característica


Todos los lenguajes de programación orientados a objetos proporcionan mecanismos que
ayudan a implementar el modelo orientado a objetos.

4.4.1. Abstracción
Es cuando el usuario interactúa solo con los atributos y métodos seleccionados de un objeto,
utilizando herramientas simplificadas de alto nivel para acceder a un objeto completo. Este
concepto facilita el mantenimiento de un código de gran tamaño, donde pueden surgir
diferentes cambios a medida del tiempo.

14
4.4.2. Encapsulación
Contiene toda la información importante de un objeto dentro del mismo y solo expone la
información seleccionada al mundo exterior. Esto lo que permite es asegurar que la
información de un objeto esté oculta para el mundo exterior, agrupando en una clase las
características o atributos que cuenten con un acceso privado, y los comportamientos o
métodos que presenten un acceso público.

4.4.3. Ocultación
Se refiere a que los atributos privados de un objeto no pueden ser modificados ni obtenidos a
no ser que se haga a través del paso de un mensaje (invocación a métodos, ya sean estos
funciones o procedimientos).

4.4.4. Modularidad
La modularidad es, en programación modular y más específicamente en programación
orientada a objetos, la propiedad que permite subdividir una aplicación en partes más
pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea
posible de la aplicación en sí y de las partes restantes.

4.4.5. Herencia
Define relaciones jerárquicas entre clases, de forma que los atributos y métodos puedan ser
reutilizados. Las clases principales extienden atributos y comportamientos a las clases
secundarias. Este método da paso a crear clases secundarias, ampliando así la funcionalidad
de la clase principal y agregando atributos y comportamientos adicionales.

4.4.6. Polimorfismo
Consiste en diseñar objetos para compartir comportamientos, lo que nos permite procesar
objetos de diferentes maneras. Es la capacidad de presentar la misma interfaz para diferentes
tipos de datos. Este permite que el mismo método ejecute diferentes comportamientos de dos
formas: Anulación de método y sobrecarga de método.

4.5. Ejemplos
 Polimorfismo: tiene un teléfono inteligente para comunicarse. El modo de
comunicación que elijas podría ser cualquier cosa. Puede ser una llamada, un mensaje
de texto, un mensaje de foto, correo, etc. Por lo tanto, el objetivo es común que sea la
comunicación, pero su enfoque es diferente. Esto se llama polimorfismo.
 Herencia: Supongamos una clase Vehículo como la clase base de una clase Coche.
Podemos decir que un Coche es un Vehículo pero un Vehículo no siempre es un
Coche, puede ser una moto, un camión, etc.

4.6. Elementos de POO


Un paradigma es una teoría que suministra la base y el modelo para resolver problemas y la
POO se compone de los siguientes 4 elementos:
4.6.1. Clase
Las clases en Java (Java Class) son plantillas para la creación de objetos. Como tal, la clase
forma la base para la programación orientada a objetos en Java, la cual es una de los
principales paradigmas de desarrollo de software en la actualidad.

15
Dentro de una clase se definen los datos y el código que actúa sobre esos datos. El código está
contenido en métodos. Debido a que las clases, los objetos y los métodos son fundamentales
para Java.

4.6.2. Objeto
Los objetos se crean a partir de clases, y las clases sirven como plantillas para crear objetos. A
los objetos también se les llama instancias de clase.
Utilicemos una analogía. Piensa en la palabra persona. Cuando hablamos de una persona no
nos referimos a ninguna persona en particular, solo a la idea de la persona. Una persona tiene
un nombre, una edad, una estatura, etc. Esa es la clase, la plantilla.
Ahora piensa en personas específicas: tú, tu mamá, el presidente de tu país, Alan Turing,
Nelson Mandela, etc. Esos son los objetos. Para cada persona puedes llenar los datos de la
plantilla: el nombre, la edad, la estatura, etc.
4.6.3. Atributos
Información de un objeto. Así como un objeto tiene un comportamiento, los objetos también
pueden tener información, o atributos (hablo de objeto y no de clase porque, aunque los
métodos se definen en la clase, se llaman sobre los objetos).
Como decíamos antes, una persona puede tener un nombre, una edad, una estatura, etc. Esos
son los atributos.
Imagina a los atributos como variables que están asociadas a un objeto. De hecho, a los
atributos se les conoce como variables de instancia (instancia se refiere a un objeto, la
instancia de una clase).

4.6.4. Métodos
Los métodos son subrutinas que manipulan los datos definidos por la clase y, en muchos
casos, brindan acceso a esos datos. En la mayoría de los casos, otras partes de tu programa
interactuarán con una clase a través de sus métodos.

Un método contiene una o más declaraciones. En un código Java bien escrito, cada
método realiza solo una tarea. Cada método tiene un nombre, y es este el que se usa para
llamar al método. En general, puede dar el nombre que desee a un método cualquiera. Sin
embargo, recuerde que main() está reservado para el método que comienza ejecución de su
programa. Además, no use las palabras clave de Java para nombres de métodos.

Imagen 19. Estructura metodo


Autoría propia

4.6.5. Constructor
En Programación Orientada a Objetos (POO), un constructor es una subrutina cuya misión es
inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo
objeto.

16
Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de
las herramientas de la programación orientada a objetos. Al utilizar un constructor,
el compilador determina cuál de los objetos va a responder al mensaje (virtual) que hemos
creado. Tiene un tipo de acceso, un nombre y un paréntesis.

Imagen 20. Estructura constructor


Autoría propia

4.6.6. Sobrecarga de constructores


La sobrecarga de constructor es una técnica en Java en la que una clase puede tener cualquier
cantidad de constructores que difieran en la lista de parámetros. El compilador diferencia
estos constructores teniendo en cuenta el número de parámetros en la lista y su tipo.

Imagen 21. Sobrecarga constructor


Autoría propia

4.6.7. Métodos get y set


Los métodos get y set, son simples métodos que usamos en las clases para mostrar (get) o
modificar (set) el valor de un atributo. El nombre del método siempre será get o set y a
continuación el nombre del atributo, su modificador siempre es public ya que queremos
mostrar o modificar desde fuera la clase. Por ejemplo, getNombre o setNombre.

Esta es la sintaxis de cada uno:

Imagen 22. Sintaxis Get y Set’


https://www.discoduroderoer.es/metodos-get-y-set-en-java/#:~:text=Los%20m%C3%A9todos%20get%20y%20set%2C%20son
%20simples%20m%C3%A9todos%20que%20usamos,modificar%20desde%20fuera%20la%20clase.

4.7. Modificador de acceso o visibilidad


Los modificadores de acceso son una palabra reservada del lenguaje y se colocan delante de
la propiedad o método, el modificador de acceso package private no tiene palabra reservada
se aplica en caso de que no se especifique un modificador de acceso explícitamente.

17
Imagen 23. Modificador de acceso
https://picodotdev.github.io/blog-bitix/2020/01/los-modificadores-de-acceso-de-clases-propiedades-y-metodos-en-java/
#:~:text=Los%20modificadores%20de%20acceso%20son,un%20modificador%20de%20acceso%20expl%C3%ADcitamente.

4.8. Composición
La composición consiste en crear una clase nueva agrupando objetos de clase que ya existen.
Una composición agrupa uno o más objetos para construir una clase, de manera que las
instancias de esta nueva clase contienen uno o más objetos de otras clases. Normalmente los
objetos contenidos se declaran con acceso private y se inicializan en el constructor de la clase.
La clase vehículo está compuesta de objetos de tipo String. Los atributos matricula, marca,
modelo y color en la realidad son objetos de la clase String.

Imagen 24. Composición


https://codepad.co/snippet/ejemplo-de-como-hacer-una-composicion-en-java

4.9. Vector de objetos


Java es un lenguaje de programación orientado a objetos y consta de clases y objetos.
Podemos crear un array de un objeto usando la notación de array [ ] en Java. Podemos usar el
constructor para inicializar los objetos pasándole los valores. La sintaxis de la expresión se
muestra a continuación.

18
Type[] objectName = new ClassName[];

Imagen 24. Composición


https://www.delftstack.com/es/howto/java/java-array-of-objects/

5. EL LENGUAJE UNIFICADO DE MODELADO UML


5.1. Historia del lenguaje UML
“The Three Amigos” (los tres amigos) de la ingeniería de software, como se los conocía, habían
desarrollado otras metodologías. Se asociaron para brindar claridad a los programadores creando
nuevos estándares. La colaboración entre Grady, Booch y Rumbaugh fortaleció los tres métodos y
mejoró el producto final.

Los esfuerzos de estos pensadores derivaron en la publicación de los documentos UML 0.9 y 0.91
en 1996. Pronto se hizo evidente que varias organizaciones, incluidas Microsoft, Oracle e IBM,
consideraron que UML era esencial para su propio desarrollo de negocios. Ellos, junto con
muchas otras personas y compañías, establecieron los recursos necesarios para desarrollar un
lenguaje de modelado hecho y derecho. "Los tres amigos" publicaron la Guía del usuario para el
Lenguaje Unificado de Modelado en 1999, y una actualización que incluye información sobre
UML 2.0 en la segunda edición de 2005.

5.2. Que es UML

El Lenguaje Unificado de Modelado (UML) fue creado para forjar un lenguaje de modelado
visual común y semántica y sintácticamente rico para la arquitectura, el diseño y la
implementación de sistemas de software complejos, tanto en estructura como en comportamiento.
UML tiene aplicaciones más allá del desarrollo de software, p. ej., en el flujo de procesos en la
fabricación.

5.3. Características
 Es una especificación basada en n basada en Booch, OMT y OOSE, de all OMT y OOSE,
de allí sus principios.
 Divide cada proyecto en un número de diagramas que representan los distintos diagramas
que representan las distintas vistas del proyecto y juntos representan las vistas del
proyecto y juntos representan la arquitectura del mismo.
 Permite describir un sistema en diferentes Permite describir un sistema en diferentes
niveles de abstracción.
 Se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los con
el que sea posible modelar todos los componentes del desarrollo de una componentes del
desarrollo de una aplicación, sin definir un modelo de n, sin definir un modelo de
desarrollo.

5.4. Tipos de diagramas en UML y su simbología


5.5. Diagramas de clase
Los diagramas de clases son uno de los tipos de diagramas más útiles en UML, ya que trazan
claramente la estructura de un sistema concreto al modelar sus clases, atributos, operaciones y
relaciones entre objetos. Con nuestro software de generación de diagramas UML, la creación de
estos diagramas no es tan abrumadora como podría parecer. Esta guía te ayudará a entender,
planificar y crear tu propio diagrama de clases.

19
La figura de clase en sí misma consiste en un rectángulo de tres filas. La fila superior contiene el
nombre de la clase, la fila del centro contiene los atributos de la clase y la última expresa los
métodos o las operaciones que la clase puede utilizar. Las clases y las subclases se agrupan para
mostrar la relación estática entre cada objeto.

Imagen 25. Diagrama de clase


https://sites.google.com/site/todouml/ejercicios/ejercicios-soluciones/diagrama-de-clases-empleados-de-una-empresa

5.6. Diagrama de Casos de Uso


El diagrama de casos de uso es una forma de diagrama de comportamiento en lenguaje de
modelado unificado (UML, del inglés Unified Modelling Language), con la que se representan
procesos empresariales, así como sistemas y procesos de programación orientada a objetos. Por lo
tanto, UML no es un lenguaje de programación, sino un lenguaje de modelado, es decir, un
método estandarizado para representar sistemas planificados o ya existentes. En este diagrama,
todos los objetos involucrados se estructuran y se relacionan entre sí.

Imagen 26. Diagrama casos de uso


https://es.wikipedia.org/wiki/Diagrama_de_casos_de_uso

Conclusiones:
Después de la breve investigación que se ha manejado en esta bitácora, abarcando la información en
diferentes sitios llegamos a la conclusión y puedo decir que java puede considerarse un lenguaje de
programación “Universal” en estos tiempos, debido a la alta capacidad de implementación en los
diferentes ámbitos. Por otro lado, la programación orientada a objetos (POO), es actualmente el
paradigma que más se utiliza para diseñar programas informáticos. Son demasiadas ventajas que nos
ofrece este paradigma para resolver desafíos de programación complejos. Permite una mejor

20
estructura de datos y reutilización del código, eso sí, se requiere pensar bien en la estructura del
programa con ayuda de herramientas como UML el cual es el que nos va a permitir describir el
comportamiento de un sistema mediante un diagrama de secuencia el cual muestra la interacción de
un conjunto de objetos en una aplicación a través del tiempo.

Referencias:
 https://www.computerweekly.com/es/definicion/Programacion-orientada-a-objetos-OOP
 https://es.wikipedia.org/wiki/Ocultaci%C3%B3n_de_informaci%C3%B3n#:~:text=En
%20programaci%C3%B3n%20orientada%20a%20objetos,sean%20estos%20funciones%20o
%20procedimientos).
 https://es.wikipedia.org/wiki/Modularidad_(inform%C3%A1tica)#:~:text=La
%20modularidad%20es%2C%20en%20programaci%C3%B3n,y%20de%20las%20partes
%20restantes.
 https://guru99.es/javaconstructors/#:~:text=La%20sobrecarga%20de%20constructor%20es,la
%20lista%20y%20su%20tipo.
 https://makeitrealcamp.gitbook.io/programacion-orientada-por-objetos-en-ruby/clases-y-
objetos
 https://picodotdev.github.io/blog-bitix/2020/01/los-modificadores-de-acceso-de-clases-
propiedades-y-metodos-en-java/#:~:text=Los%20modificadores%20de%20acceso%20son,un
%20modificador%20de%20acceso%20expl%C3%ADcitamente.
 https://guru99.es/java-constructors/#:~:text=La%20sobrecarga%20de%20constructor
%20es,la%20lista%20y%20su%20tipo.
 https://www.delftstack.com/es/howto/java/java-array-of-objects/
 https://www.discoduroderoer.es/metodos-get-y-set-en-java/#:~:text=Los%20m
%C3%A9todos%20get%20y%20set%2C%20son%20simples%20m%C3%A9todos%20que
%20usamos,modificar%20desde%20fuera%20la%20clase.
 https://es.wikipedia.org/wiki/Constructor_(inform%C3%A1tica)
 https://www.lucidchart.com/pages/es/que-es-el-lenguaje-unificado-de-modelado-uml
 https://www.lucidchart.com/pages/es/tutorial-de-diagrama-de-clases-uml
 https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/diagrama-de-casos-de-uso/

21

También podría gustarte