Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRESENTADO POR
JHULIE ANDREA BORDA CRUZ
CAMILO HERNANDO MORA
MARIA ALEJANDRA ROA
HEIDY JULIANA SANCHEZ
WILMER HUMBERTO AGUILERA
PRESENTADO A:
FRANKLIN LIZCANO CELIS
GRUPO: 301403_35
2018
DESARROLLO DE LA ACTIVIDAD
RTA: PROYECTO B
2. Consultar y reconocer las características generales de la programación orientada a
objetos y la estructura del Lenguaje Java, que será utilizado para el desarrollo del
proyecto. Para ello se recomienda que entre todos los integrantes del grupo colaborativo
se distribuyan las preguntas planteadas en el siguiente cuestionario que se relaciona a
continuación, para ser solucionadas.
Actividades a desarrollar INTEGRANTE
1. Cuál es la diferencia entre programación estructurada
JHULIE BORDA
y programación orientada a objetos
2. Ventajas y desventajas de la programación orientada
JHULIE BORDA
a objetos
3. Sintaxis para definir variables en Java JHULIE BORDA
4. Sintaxis para imprimir en consola en Java JHULIE BORDA
CAMILO HERNANDO
5. Sintaxis para realizar comentarios en Java
MORA
CAMILO HERNANDO
6. Sintaxis de los operadores lógicos y relacionales
MORA
7. Defina Clase, instancia de clase, atributo,
CAMILO HERNANDO
comportamiento, identidad, constructor e
MORA
identificadores.
8. Informe los tipos de clase MARIA ALEJANDRA ROA
9. Describa el concepto de Modularización y de un
MARIA ALEJANDRA ROA
ejemplo.
10. Describa el concepto de Herencia y de un ejemplo. MARIA ALEJANDRA ROA
11. Describa el concepto de Polimorfismo y de un HEIDY JULIANA
ejemplo. SANCHEZ
12. Describa el concepto de Encapsulamiento y de un HEIDY JULIANA
ejemplo. SANCHEZ
13. Informe cómo convertir un String a entero en Java y HEIDY JULIANA
viceversa SANCHEZ
14. Defina el concepto de método y realice un ejemplo WILMER HUMBERTO
constructor AGUILERA
15. Qué función tiene el paquete Swing en Java y WILMER HUMBERTO
describa sus principales características AGUILERA
16. Consultar la estructura y sintaxis de cómo WILMER HUMBERTO
funcionan las excepciones en Java. AGUILERA
En Java, se puede declarar una variable indicando el tipo de dato que podrá almacenar
y su nombre (identificador). Por ejemplo, para almacenar un número entero, se puede
escribir:
int numero;
int numero = 2;
String cadena = "Hola";
long decimal = 2.4;
boolean flag = true;
class Triangulo {
private long base;
private long altura;
}
class Triangulo {
private long base;
private long altura;
}
class Triangulo {
static long lados = 3;
}
Si además queremos que el valor no pueda cambiar nunca la definiremos como final.
class Matematicas {
final static long PI = 3.14159;
}
OPERADOR DESCRIPCIÓN
== Es igual
!= Es distinto
<, <=, >, >= Menor, menor o igual, mayor, mayor o igual
|| Operador or (o)
No nos olvidemos de los char, que también participan. Podemos comparar caracteres,
pues internamente están almacenados como números.
char a = 'A';
char b = 'B';
boolean x = a > b;
Entre los booleanos solo se permiten los operadores de equivalencia, es igual (==) o es
distinto (!= )
boolean x = true;
boolean y = x == x;
boolean z = x != y;
class Rectangulo{
int x;
int y;
int ancho;
int alto;
Rectangulo (int x1, int y1, int w, int h){
x=x1;
y=y1;
ancho=w;
alto=h;
}
}
Todos los identificadores han de comenzar con una letra, el carácter subrayado
(_ o el carácter dollar ( $ ).
Puede incluir, pero no comenzar por un número
No puede incluir el carácter espacio en blanco
Distingue entre letras mayúsculas y minúsculas
No se pueden utilizar las palabras reservadas como identificadores
La identidad: es una propiedad de un objeto que lo diferencia del resto; dicho con otras
palabras, es su identificador (concepto análogo al de identificador de una variable o
una constante).
RTA: Estos son algunos de los tipos de clase en Java(Castilla Rodríguez, n.d.)
Class TimeUnit: Diferentes unidades de tiempo que se pueden usar en una simulación:
MILISENGUNDO, SEGUNDO, MINUTO, HORA, DÍA, SEMANA, MES y AÑO.
Class TimeStamp: Un valor de tiempo expresado como un par
Class TimeFunction: Una clase contenedora que devuelve los valores correspondientes
a una función específica, que puede depender del tiempo y seguir una distribución
aleatoria de números.
Class PeriodicCycle: Una secuencia de eventos repetida periódicamente. Se puede
definir de dos maneras diferentes: por un lado, se puede definir un ciclo que se detiene
cuando se alcanza una marca de tiempo (endTs) particular; por otro lado, se puede
definir un ciclo que se detiene después de un número específico de iteraciones. Incluso
se puede definir un ciclo infinito (0 iteraciones). Los ciclos pueden contener subciclos,
que se inician dentro del período del ciclo principal.
Class TableCycle: Un conjunto de instantes cuando sucede algo. Se puede definir un
subciclo que se inicia entre cada dos activaciones consecutivas del ciclo principal.
Class Condition: Una condición lógica que se usa para modelar restricciones o
situaciones inciertas.
Class Variable: Variables de simulación.
Class Simulation: La principal clase de simulación, que ejecuta un modelo definido por
medio de diferentes estructuras: ResourceType, Resource, Work-Group, Activity
(TimeDrivenActivity y FlowDrivenActivity), ElementType, TimeDrivenGenerator y
Flow. Una simulación tiene un reloj virtual asociado que comienza en los inicios y
avanza según los eventos producidos por los elementos, recursos y generadores de
tiempo. Una técnica del próximo evento se usa para determinar la próxima marca de
tiempo para avanzar. Un TimeUnit mínimo determina la precisión del reloj de
simulación. La simulación finaliza cuando el reloj virtual llega a endTs o no hay más
eventos disponibles.
Class ResourceType: El tipo de recurso. Define roles o especializaciones de los
recursos.
Class Resource: Un recurso de simulación cuya disponibilidad se controla mediante
entradas de calendario. Una entrada de horario utiliza un trío <ResourceType, Cycle,
long> que define un tipo de recurso, un ciclo de disponibilidad y la duración de cada
período de disponibilidad. Las entradas de horarios pueden superponerse en el tiempo,
lo que permite que el recurso esté potencialmente disponible para diferentes tipos de
recursos simultáneamente.
Class TimeDrivenActivity: Una actividad cuya finalización es impulsada por una
marca de tiempo, es decir, la actividad comienza cuando hay recursos suficientes y
termina después de un período de tiempo. Este tipo de actividad se puede caracterizar
por un valor de prioridad, presentialidad, interruptibilidad y un conjunto de grupos de
trabajo. El grupo de trabajo seleccionado establece cuánto tiempo tomará finalizar esta
actividad. Por defecto, las actividades impulsadas por el tiempo son presenciales, es
decir, un elemento que lleva a cabo esta actividad no puede realizar simultáneamente
ninguna otra actividad presencial; e ininterrumpible, es decir, una vez que se inicia, la
actividad conserva sus recursos hasta que finaliza, incluso si los recursos no están
disponibles mientras se realiza la actividad.
Class FlowDrivenActivity: Una actividad que puede ser llevada a cabo por un
Elemento, y cuya duración depende de la finalización de un Flujo interno. Esta
actividad se puede considerar una Actividad híbrida - Flujo estructurado, su
comportamiento es similar al último.
Class ElementType: Describe un conjunto de elementos que tienen algo en común.
Además de establecer una prioridad, esto es simplemente un atributo descriptivo, y se
usa con fines estadísticos.
Class TimeDrivenGenerator: Un generador que crea elementos siguiendo un patrón
de tiempo.
Class Element: Una entidad capaz de crear eventos de simulación. Los elementos
tienen un tipo y un flujo asociado. Los elementos no se declaran explícitamente como
parte del modelo, sino que se crean automáticamente como se describe en el
ElementCreator correspondiente.
Class SingleFlow: El nodo de hoja de un flujo: un contenedor para actividades.
Class ParallelFlow: Un flujo sucesor múltiple que divide la ejecución en varias ramas
salientes. Cumple con el patrón de división en paralelo (WCP2)
Class ExclusiveChoiceFlow: Un flujo condicional que permite que solo se active una
de las ramas salientes, que se evalúan en orden. El flujo continúa a través de la primera
rama saliente evaluada como verdadera. Cumple con el patrón de elección exclusiva
(WCP4).
Class MultiChoiceFlow: Un flujo condicional que permite activar todas las ramas
salientes que cumplen con su condición. Cumple con el patrón de elección múltiple
(WCP6).
Class ProbabilitySelectionFlow: Un flujo de Opción Exclusiva adaptada que
selecciona una rama saliente entre un conjunto de ellas utilizando un valor de
probabilidad. Cada rama saliente tiene un valor (0.0 - 1.0) que expresa su probabilidad
de ser elegido
Class SimpleMergeFlow: Crea un flujo OR que permite que pasen todas las ramas
entrantes. Cuando varias ramas entrantes llegan a la misma hora de simulación, la rama
saliente se activa solo una vez. Cumple con el patrón Simple Merge (WCP5).
Class MultiMergeFlow: Crea un flujo OR que permite que pasen todas las ramas
entrantes. Cumple con el patrón Multi-Merge (WCP8).
Class SynchronizationFlow: Un flujo AND de union que pasa solo cuando todas las
ramas entrantes se han activado una vez. Cumple con el patrón de sincronización
(WCP3).
Class DiscriminatorFlow: Un flujo AND de unión que permite que solo pase la
primera rama entrante. Cumple con el patrón Discriminador de bloqueo (WCP28).
Class PartialJoin: Un flujo AND de unión que permite que solo la n-ésima rama
entrante pase. Cumple con el patrón Blocking Partial Join (WCP31).
Class InterleavedParallelRoutingFlow: Un flujo estructurado que contiene un
conjunto de actividades que se realizarán de acuerdo con un conjunto predefinido de
ordenamientos parciales. Los pedidos parciales se definen utilizando una colección de
conjuntos de actividades. Cada matriz [A1, A2, ... An] define relaciones de precedencia;
por lo tanto, A1 debe ejecutarse antes de A2, A2 antes que A3, y así sucesivamente. Si
todas las actividades son presenciales, cumple con el patrón de Enrutamiento paralelo
entrelazado (WCP17)
Class DoWhileFlow: Un ciclo do-while. El flujo interno se ejecuta la primera vez y
luego se verifica la condición posterior. Si la condición posterior es verdadera, el flujo
interno se ejecuta nuevamente; de lo contrario, este flujo termina. Cumple con el patrón
Structures Loop (WCP21).
Class WhileDoFlow: Un ciclo do-while. El flujo interno se ejecuta la primera vez y
luego se verifica la condición posterior. Si la condición posterior es verdadera, el flujo
interno se ejecuta nuevamente; de lo contrario, este flujo termina. Cumple con las
estructuras Patrón de bucle (WCP21).
Class ForLoopFlow: El flujo interno se ejecuta N veces. Cumple con las estructuras
Patrón de bucle (WCP21).
Class StaticPartialJoinMultipleInstancesFlow: Un flujo estructurado que cumple con
el patrón de Unión parcial estática para varias instancias (WCP34) si el valor de
aceptación es mayor que 1 y menor que el número de instancias de subprocesos creados
dentro de esta estructura. Si tanto el valor de aceptación como el número de instancias
son iguales, cumple las Instancias Múltiples con un patrón de Conocimiento de Tiempo
de Diseño Prioritario (WCP13) (la clase SynchronizedMultipleInstanceFlow puede
usarse con el mismo propósito).
Class StructuredPartialJoinFlow: Un flujo estructurado cuyo paso inicial es un flujo
paralelo y cuyo paso final es un flujo de unión parcial. Cumple con el patrón de Unión
parcial estructurada (WCP30).
Class StructuredSynchroMergeFlow: Un flujo estructurado cuyo paso inicial es un
flujo de elección múltiple y cuyo paso final es una sincronización. Cumple con el patrón
de sincronización estructurada (WCP7).
Class InterleavedRoutingFlow: Un flujo estructurado cuyo paso inicial es un flujo
paralelo y cuyo paso final es un flujo de sincronización. Cumple con el patrón de
enrutamiento entrelazado (WCP40) si todas las actividades son presenciales.
Class StructuredDiscriminatorFlow: Un flujo estructurado cuyo paso inicial es un
flujo paralelo y cuyo paso final es un flujo discriminador. Cumple con el patrón
Discriminador estructurado (WCP9).
Class ThreadSplitFlow: Un flujo que crea varias instancias de la rama saliente. Se
debe usar con su contraparte ThreadMergeFlow. Cumple con el patrón de división de
hilo (WCP 42).
Class ThreadMergeFlow: Un flujo que combina un número especificado de instancias.
Se debe usar con su contraparte, ThreadSplitFlow. Cumple con el patrón de fusión de
subprocesos (WCP41), pero también tiene características adicionales. Funciona como
un discriminador de subprocesos si acceptValue está establecido en 1; o como una
unión parcial de subproceso si se utiliza cualquier otro valor mayor que uno y menor
que nInstances
9. Describa el concepto de Modularización y de un ejemplo.
RTA:
Modularizar (Vélez Serrano, Peña Abril, & Gortazar Bellas, 2000): Es la capacidad
que permite dividir un programa en agrupaciones lógicas de sentencias. A estas
agrupaciones se les llama módulos.
Ventajas:
Facilidad de mantenimiento, diseño y revisión.
Aumento de la velocidad de compilación.
Mejora en la organización y en la reusabilidad.
Se debe tener en cuenta al momento de modularizar:
Maximizar la coherencia, es decir, se deben agrupar en un mismo módulo las
abstracciones relacionadas lógicamente.
Minimizar las dependencias entre módulos, es decir, que para compilar un
módulo no se necesite compilar muchos otros.
Controlar el tamaño de los módulos. Módulos pequeños aumentan la
desorganización, módulos grandes son menos manejables y aumentan los
tiempos de compilación.
¿Qué problemas podemos tener? pues que la cadena no sólo contenga números, sino que
venga con espacios.
Si los espacios vienen al princio o al final, con un simple trim bastará para eliminarlos,
por ejemplo ("1")
numCadena.trim();
Si tenemos espacio entre los números deberíamos usar el método replaceAll (" 1 3 45
6")
Una vez realizados estos sencillos pasos podremos trabajar con los números enteros.
Para pasar de un tipo básico a un objeto String tenemos varias posibilidades, por un
lado, si eres un artesano, puedes simplemente concatenar a tu entero una cadena vacía:
int numEntero = 4;
int numEntero = 4;
Otra forma correcta de hacerlo sería utilizando el método toString del objeto Integer de
la siguiente manera:
String numCadena= Integer.toString(numEntero);
Se podría decir que existen 2 grandes tipos de métodos, el primer tipo de método son
métodos que realizan procesos, puedes realizar cualquier operación con ellos. Sin
embargo, el propósito es manipular variables existentes. El segundo tipo de métodos
son los que realizan un proceso o calculo, y calculan una variable específica, un ejemplo
podría ser un método para obtener el valor de una multiplicación.
a. ESTRUCTURA GENERAL DE UN MÉTODO JAVA [ CITATION Pro \l
9226 ]
import java.util.*;
public class Metodos1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numero1, numero2, resultado;
System.out.print("Introduce primer número: ");
numero1 = sc.nextInt();
System.out.print("Introduce segundo número: ");
numero2 = sc.nextInt();
resultado = sumar(numero1, numero2);
System.out.println("Suma: " + resultado);
}
public static int sumar(int a, int b){
int c;
c = a + b;
return c;
}
}
15. Qué función tiene el paquete Swing en Java y describa sus principales
características
RTA: El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma
Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca
componentes como botones, tablas, marcos, etc... [ CITATION Cal \l 9226 ]
Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las
interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window
Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda
componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase
Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las
componentes Swing comienza con "J").
Ojo: Como regla, los programas no deben usar componenetes pesados de AWT junto a
componentes Swing, ya que los componentes de AWT son siempre pintados sobre los de
Swing. (Por componentes pesadas de AWT se entiende Menu, ScrollPane y todas las
componentes que heredan de las clases Canvas y Panel de AWT).
Cada aplicación Swing debe tener al menos un top-level container que contendrá toda la
aplicación, estos pueden ser
catch(TipoN varN)
{
//Gestión del error varN, de tipo TipoN
}]
[
finally
{
//Código de finally
}
]
Como podemos ver es obligatorio que exista la zona try, o zona de pruebas, donde
pondremos las instrucciones problemáticas. Después vienen una o más zonas catch,
cada una especializada en un tipo de error o excepción. Por último está la zona finally,
encargada de tener un código que se ejecutará siempre, independientemente de si se
produjeron o no errores.
Ejemplo:
public class Hello {
public static void main(String argv[]){
int uno_diez[] = new int[10];
try {
uno_diez[12] = 10;
}
catch(java.lang.ArrayIndexOutOfBoundsException) {
System.out.println(“Error, hemos sobrepasado el
tamaño del array”);
// aquí podemos hacer lo que queramos
}
}
}
Nombre: Login
Fecha: 30/08/2018
Descripción:
Al ejecutar la aplicación, esta debe solicitar un password y Login para garantizar la
seguridad de la aplicación y el acceso solo a personal autorizado. Los estudiantes deben
tener en cuenta que no se permite en el password los siguientes caracteres: #,!,¡,?,^,¿,|,°
por lo que es obligatorio hacer uso de los bloques de excepciones en Java para evitar estos
caracteres.
Actores:
Usuario / Administrador
Precondiciones:
Ingreso de datos
Flujo Normal:
1.- El actor visualiza las cajas de texto donde se encuentra el ingreso del usuario y
3.- El actor introduce los valores requeridos para su validación
4.- El sistema comprueba la validez de los datos ingresados.
5.- El actor recibe una notificación de que se han ingresado los datos correctamente y esta
logeado
6-El sistema ingresa al menú princinipal del aplicativo
Flujo Alternativo:
1- El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al
actor de ello permitiéndole que los corrija.
2- Si se introduce un valor de texto en un recuadro numérico se alertara de esto solicitando
el cambio a valores numéricos
Poscondiciones:
Menú principal
Fecha: 30/08/2018
Descripción:
Informe de las reparaciones: En este módulo debe permitir obtener el informe de las
reparaciones, incluyendo los datos básicos del cliente.
Actores:
Usuario logeado/Administrador
Precondiciones:
Iniciar login Usuario y contraseña
Flujo Normal:
1.- El actor pulsa sobre el botón buscar informes
2.- El sistema muestra todos los datos de la base de datos
3.- El actor puede acceder al informe solicitado filtrando la información con un valor
4.- El sistema comprueba los datos filtrados y genera el informe solicitado
5.- El actor recibe una notificación de que se ha generado el informe
6- El sistema da opción de guardar o de imprimirlo directamente desde el aplicativo
Flujo Alternativo:
1-El sistema comprueba la validez de los datos, si los datos no son correctos, genera alerta
para que se corrija
2- si se introducen datos de una reparación que no existe este también genera alerta de que
no se encontraron datos
3- Si se introduce un valor de texto en un recuadro numérico se alertara de esto solicitando
el cambio a valores numéricos
Poscondiciones:
Envió de Informe para impresión o guardado
Fecha: 30/08/2018
Descripción:
El modulo debe permitir el ingreso de las reparaciones de calzado permitiendo registrar el
tipo de calzado, el arreglo y el valor. En caso de requerir modificación del registro, el
sistema debe permitir hacerlo.
Actores:
Usuario logeado en el aplicativo,
Precondiciones:
Iniciar login Usuario y contraseña
Flujo Normal:
1.- El actor pulsa sobre el botón Ingresar nueva reparación
2.- El sistema muestra una caja de texto para introducir los valores
3.- El actor introduce los valores requeridos para su validación
4.- El sistema comprueba la validez de los datos y los almacena.
5.- El actor recibe una notificación de que se han almacenado los datos con exito.
Flujo Alternativo:
1- El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al
actor de ello permitiéndole que los corrija.
2- Si se introduce un valor de texto en un recuadro numérico se alertara de esto solicitando
el cambio a valores numéricos
Poscondiciones:
Envió de datos registrados a la base de datos
Nombre: Registro de clientes
Fecha: 30/08/2018
Descripción:
Registro de Clientes: En este módulo debe permitir registrar el nombre, fecha de
nacimiento, dirección y el teléfono celular de cada cliente
Actores:
Usuario logeado/Administrador
Precondiciones:
Iniciar login Usuario y contraseña
Flujo Normal:
1.- El actor pulsa sobre el botón Ingresar nuevo cliente
2.- El sistema muestra una caja de texto para introducir los valores
3.- El actor introduce los valores requeridos para su validación
4.- El sistema comprueba la validez de los datos y los almacena.
5.- El actor recibe una notificación de que se han almacenado los datos con exito.
Flujo Alternativo:
1-El sistema comprueba la validez de los datos, si los datos no son correctos, o si no se
están llenando los recuadros requeridos se avisa al actor de ello permitiéndole que corrija
los errores alertados.
2- Si se introduce un valor de texto en un recuadro numérico se alertara de esto solicitando
el cambio a valores numéricos
Poscondiciones:
Envió de datos registrados a la base de datos
Nombre: Consulta clientes
Autor: Camilo Hernando Mora Ruiz
Fecha: 30/08/2018
Descripción:
Consulta de Clientes: En este módulo debe permitir consultar información relacionada con
los clientes y los saldos pendientes por reparaciones
Actores:
Usuario logeado/Administrador
Precondiciones:
Iniciar login Usuario y contraseña
Flujo Normal:
1.- El actor pulsa sobre el botón Clientes
2.- El sistema muestra todos los datos de la base de datos
3.- El actor puede acceder al informe solicitado filtrando la información con un valor
4.- El sistema comprueba los datos filtrados y genera la información solicitada
5.- El actor recibe una notificación de que se han encontrado datos
6- El sistema genera una pestaña nueva con los datos de cliente solicitados
7- El sistema muestra varias opciones como , guardar , imprimir y editar
Flujo Alternativo:
1-El sistema comprueba la validez de los datos, si los datos no son correctos, genera alerta
para que se corrija
2- si se introducen datos de un cliente que no existe este también genera alerta de que no
se encontraron datos
3- Se visualizara la última vez que se editó la información con el fin de que el actor pueda
verificar si alguien ingreso al aplicativo
Poscondiciones:
Impresión de información, consulta o salir del aplicativo
REQUISITOS NO FUNCIONALES
Calderón, M. (s.f.). Swing, la solución actual de Java para crear GUIs. Obtenido de
https://users.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.html
http://computacionii.foroes.org/t6-programacion-orientada-a-objetos-vs-
programacion-estructurada
https://www.dspace.espol.edu.ec/bitstream/123456789/11378/1/Programacion
%20Java%20Proyecto_completa.pdf
https://techlandia.com/ventajas-desventajas-programacion-orientada-objetos-
info_184901/
https://objetosweb.wordpress.com/2016/05/18/ventajas-y-desventajas-de-la-
programacion-orientada-a-objetos/
http://www.manualweb.net/java/variables-java/
http://computacionii.foroes.org/t6-programacion-orientada-a-objetos-vs-
programacion-estructurada
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/introduccion/primero.ht
m#Identificadores
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.htm
https://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica)
http://www.mundojava.net/definicion-de-atributos-de-una-clase.html?
Pg=java_inicial_4_4_3.html
http://www.it.uc3m.es/java/gitt/resources/static/index_es.html
https://thedarkoznet.wordpress.com/2012/01/20/como-crear-una-instancia-en-java/
Miguel Angel Alvarez. (2014). Polimorfismo en Programación Orientada a Objetos.
2018/05/20, de DesarrolloWeb.com Sitio web:
https://desarrolloweb.com/articulos/polimorfismo-programacion-orientada-objetos-
concepto.html
Carlos Vialfa. (2016). POO - Encapsulación de datos. 2017-11-07, de CCM
(https://es.ccm.net/) Sitio web: https://es.ccm.net/contents/410-poo-encapsulacion-
de-datos
Anonimo. (2014). Pasar de INT a String y de String a INT en Java. lunes 2014-12-
15, de http://sinplanes.com
Sitio web: http://sinplanes.com/tecnologia/pasar-de-int-a-string-y-de-string-a-int-en-
java.html
http://www.pmoinformatica.com/2015/05/requerimientos-no-funcionales-
ejemplos.html
http://www.pmoinformatica.com/2018/04/documento-de-requerimientos-de-
software_37.html
http://www.pmoinformatica.com/2017/02/requerimientos-funcionales-
ejemplos.html
https://sites.google.com/site/metodologiareq/capitulo-ii/tecnicas-para-identificar-
requisitos-funcionales-y-no-funcionales