Cliclo 2 JAVA DocV5
Cliclo 2 JAVA DocV5
Cliclo 2 JAVA DocV5
Programación
JAVA
https://www.java.com/es/
PRIMEROS PASOS EN
JAVA
Java es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun
Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tenga Java instalado y cada día se
crean más. Java es rápido, seguro y fiable. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper
computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes.
Java es un lenguaje de propósito general, fuertemente tipado, imperativo y orientado a objetos. Como tal, nos permitirá
resolver diferentes tipos de problemas, así como desarrollar aplicaciones de escritorio, para la web y móviles, sin
necesidad de aprender unas reglas del lenguaje (sintaxis) diferentes para cada caso.
Es un concepto que se usa para referirse a un lenguaje de programación que impone restricciones estrictas sobre la mezcla de valores con diferentes tipos de datos. Cuando se violan
tales restricciones y se produce un error (excepción).
PRIMEROS PASOS EN
JAVA
La filosofía del lenguaje reza “write once, run anywhere”, que puede traducirse como
“escribe una vez, ejecuta en cualquier lugar”. Es decir, Java está orientado a que una
vez escribamos y compilemos una aplicación en dicho lenguaje, esta se pueda ejecutar
en cualquier sistema operativo compatible, sin necesidad de compilar de nuevo el
código o de hacerle cambios mayores. Esto no necesariamente es posible en todos los
lenguajes de programación, y se logra en Java al agregar la Java virtual machine (JVM)
entre la aplicación y el sistema operativo, tal como se describió arriba.
La plataforma Java
Java no es solo un lenguaje de programación, sino también una plataforma que engloba
un conjunto de tecnologías que permiten desarrollar aplicaciones para todo tipo de
entornos y para cumplir diferentes propósitos. Así pues, la plataforma Java la
comprenden, entre otros, Java Standard Edition (Java SE), Jakarta Enterprise Edition
(Jakarta EE, antes Java EE) y JavaFX.
Java Standard Edition (Java SE) es la base de todas las demás ediciones, e incluye los
elementos básicos del lenguaje, así como las API y librerías usadas para desarrollar
aplicaciones para consola, para escritorio y para la web.
Jakarta Enterprise Edition (Jakarta EE) agrega a las capacidades de Java SE todo lo
necesario para elaborar aplicaciones para la web. Finalmente, JavaFX permite el
desarrollo de interfaces gráficas siguiendo estándares modernos de desarrollo de
software y permitiendo el uso de diferentes componentes gráficos sin importar el
sistema operativo donde se ejecute la aplicación.
La plataforma Java
En este punto, es importante mencionar tres componentes clave dentro de la plataforma Java:
el JRE, el JDK y la JVM.
Descargar jdk:
https://www.oracle.com/java/technologies/downloads/#java17
1
Descargar el IDE:
https://netbeans.apache.org/
2
Tradiccional Proyecto:
Hola Mundo Java
4
Tipos de Datos
EJEMPLO
Tipos de Datos
Operación de Asignación
Tipos de Datos
Operadores Aritméticos
Tipos de Datos
Operadores Relacionales
Tipos de Datos
Operadores Lógicos
Tabla de la Verdad
Expresiones
RECORDEMOS
Estructura de
Salida
Estructura de
Entrada
Estructura
Condicionales
SIMPLES
Estructura
Condicionales
DOBLES
Estructura
Condicionales
MULTIPLES
Estructura
Condicionales
ANIDADOS
Estructura
Dependiendo de
Estructura Cíclicas
Estructura Cíclicas
Operadores de
asignación compuesto
Operadores de
asignación compuesto
¿Funciones, métodos
o procedimientos?
¿Funciones, métodos o procedimientos?
Es muy común entre programadores que se hable indistintamente de estos tres términos sin embargo
poseen deferencias fundamentales.
Funciones:
Los métodos y las funciones en Java están en capacidad de realizar las mismas tareas, es decir, son
funcionalmente idénticos, pero su diferencia radica en la manera en que hacemos uso de uno u otro (el
contexto). Un método también puede recibir valores, efectuar operaciones con estos y retornar valores,
sin embargo en método está asociado a un objeto, SIEMPRE, básicamente un método es una función que
pertenece a un objeto o clase, mientras que una función existe por sí sola, sin necesidad de un objeto
para ser usada. Nota: Es aquí donde digo que en Java se debe hablar de métodos y no de funciones, pues
en Java estamos siempre obligados a crear un objeto para usar el método. Para que sea una función esta
debe ser static, para que no requiera de un objeto para ser llamada.
Procedimientos:
Los procedimientos son básicamente un conjunto de instrucciones que se ejecutan sin retornar ningún
valor, hay quienes dicen que un procedimiento no recibe valores o argumentos, sin embargo en la
definición no hay nada que se lo impida. En el contexto de Java un procedimiento es básicamente un
método cuyo tipo de retorno es void que no nos obliga a utilizar una sentencia return.
ARREGLOS
INTRODUCCION
ARREGLOS
INTRODUCCION
ARREGLOS
INTRODUCCION
ARREGLOS
INTRODUCCION
ARREGLOS
ARREGLOS
Pseudocódigo
Inicio
Entero i, n, V[100]0
Leer n
para i: 0, n-1, 1 hacer
Leer V[i]
Finpara
para i: 0, n-1, 1 hacer
Escribir V[i]
Finpara
Fin
ARRAYLIST
ARRAYLIST
ARRAYLIST
Programación
Orientada a Objeto
Programación Procedimental Vs POO
Diagrama de Clases
● Recoge las clases de objetos y sus asociaciones. En este diagrama se representa la estructura
y el comportamiento de cada uno de los objetos del sistema y sus relaciones con los demás
objetos.
● Elementos de la Clase.
Programación
Orientada a Objeto
Programación
Orientada a Objeto
Programación
Orientada a Objeto
Programación
Orientada a Objeto
Instancias
Se le llama Instancia a una ocurrencia de la clase
EJEMPLO:
○ El auto con placa OWF-463 es una instancia de la clase Vehículo, o sea, un objeto de esa clase
○ La camioneta patente HZT-283 es otra instancia de la clase Vehículo
Programación
Orientada a Objeto
● public (+): Indica que el atributo será visible tanto dentro como fuera de la clase, es
decir, es accesible desde todos lados.
● private (-): Indica que el atributo sólo será accesible desde dentro de la clase (sólo
sus métodos lo pueden acceder).
● protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si
podrá ser accesado por métodos de la clase además de las subclases que se deriven.
Programación
Orientada a Objeto
Diagrama de Clases: Atributos
●Los objetos tienen atributos que llevan consigo cuando se usan en un programa.
●Los atributos son especificados como parte de la clase de la cual se toma el objeto.
●Los atributos existen antes que el método sea llamado en un objeto, mientras el método se esté
ejecutando y después que el método completa la ejecución.
●Las clases constan de uno o más métodos que manipulan los atributos que pertenecen a un
objeto particular de la clase.
●Son los datos que caracterizan a los objetos de una clase y determinan el estado de un objeto.
●Los atributos son representados como variables en una declaración de clase.
●Estas variables son declaradas dentro de la clase, pero fuera de la declaración de los métodos
dentro de la clase.
●Cada objeto de una clase mantiene su propia copia del atributo, y el campo que representa el
atributo es conocido como variable de instancia.
●Cada objeto de una clase conoce los valores de sus atributos, pero no los valores de los mismos
atributos en otros objetos definidos sobre la misma clase.
Programación
Orientada a Objeto
Atributos
Son las características de los objetos de una clase y determinan
el estado de un objeto
• Marca
• Año
• Color
• Placa, etc
Programación
Orientada a Objeto
● public (+): Indica que el método será visible tanto dentro como fuera de la clase, es
decir, es accesible desde todos lados.
● private (-): Indica que el método sólo será accesible desde dentro de la clase (sólo
otros métodos de la misma clase lo pueden acceder).
● protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si
podrá ser utilizado por métodos de la clase además de las subclases que se deriven
(herencia).
Programación
Orientada a Objeto
Métodos
Se definen como todas aquellas acciones que se pueden realizar sobre un objeto de
cierta clase
Ejemplo
Clase: Cuenta corriente
● Atributos:
○ Id
○ Número
○ Nombre
○ Saldo
● Métodos:
○ Depositar
○ Girar
○ Consultar saldo
○ Consultar cuenta
Programación
Orientada a Objeto
Ejemplo
Clase: Cuenta corriente
● Instanciación: Cuenta Corriente A, B
Programación
Orientada a Objeto
Ejemplo
Enunciado: Construya una clase denominada estudiante, con los siguientes atributos
Nombre, Nota1, Nota2, Nota3 y Definitiva. Solicite al usuario los valores para un
estudiante y almacénelos en una instancia de la clase estudiante. Calcule la nota
definitiva como el promedio simple de las tres notas. (nota1+nota2+nota3)/3
Diagrama de Clase
Programación
Orientada a Objeto
Encapsulamiento
Programación
Orientada a Objeto
Encapsulamiento en Java
● En Java se definen métodos y atributos públicos para poder revisar su contenido e
incluso ser modificados.
● El encapsulamiento consiste en ocultar los atributos y métodos de una clase, para
evitar el acceso y la modificación desde otra clase.
● Para implementar el encapsulamiento se definen estos atributos y métodos con
acceso privado.
● El encapsulamiento es útil al compartir las clases con otros programadores.
● Los métodos encapsulan un conjunto de instrucciones que se puede ejecutar
tantas veces como sea necesario. El código del método queda oculto y sólo es
necesario conocer su interfaz (parámetros y valor de retorno).
Programación
Orientada a Objeto
Programación
Orientada a Objeto
Método set
UML
Para el modelado de sistemas de información se usa principalmente el estándar UML, que desde 2017 se encuentra en su
versión 2.5.1. Dicho estándar propone y dicta la especificación de varios diagramas usados para el modelado de sistemas
de información. Los diagramas UML pueden ser estáticos o dinámicos.
Por un lado, los diagramas estáticos se ocupan de representar la estructura de objetos, clases y componentes que
comprenden un dominio o una aplicación. Por el otro, los diagramas dinámicos representan cómo interactúan clases,
objetos, componentes y actores en el tiempo de ejecución del sistema o aplicación. Uno de los diagramas UML estáticos
más usados, y piedra angular del diseño orientado a objetos, es el diagrama de clases UML.
UML
UML: Clases
Un diagrama de clases se puede utilizar, principalmente, para dos cosas:
1) Modelar un dominio, es decir, modelar los conceptos, propiedades y relaciones que comprenden el área de conocimiento o de
práctica en la cual se enmarca la aplicación de software en desarrollo.
2) Representar y visualizar la estructura de las clases que componen un sistema y las relaciones entre ellas.
Y su sintaxis, como vimos arriba, se rige por el estándar UML. Dicho estándar determina cómo se representa gráficamente la
mayor parte de los conceptos de la programación orientada a objetos, e incluso hay una equivalencia fuerte entre lo que se modela
usando UML y lo que se programa usando lenguajes como Java.
UML
UML: Clases
En UML, el elemento base es la clase. Una clase se representa como una caja compuesta a su vez por tres cajones. En el primer
cajón, el de más arriba, se escribe el nombre de la clase, en negrita; en el segundo cajón, se listan los atributos; y en el tercero, se
listan los métodos de la clase. A continuación, tenemos las clases Aeropuerto y Auto.
UML
UML: Clases
En el ejemplo de arriba, ambas clases tienen atributos y métodos. El cómo se representan los métodos y atributos varía entre
diagramas, y depende en gran medida de la herramienta usada para el modelado, de quien realiza del modelo, e incluso del
lenguaje de programación en el que se piensa al realizar el modelo. En el ejemplo de arriba, los atributos se representan así:
• En primer lugar, se pone un símbolo que depende de si el atributo es de acceso público (+), protegido (#) o privado (–).
• Luego, se pone el nombre del atributo, seguido de dos puntos (:).
• Y, finalmente, se pone el tipo de dato del atributo, que para todos los casos de arriba serán atributos de tipo String.
• En primer lugar, se pone un símbolo que depende de si el método es de acceso público (+), protegido (#) o privado (–).
• Luego, se pone el nombre del método.
• Después, se pueden especificar entre paréntesis los parámetros del método, seguido de dos puntos (:).
• Y, finalmente, se pone el tipo de dato que retorna el método. Los tipos de datos que se podrán poner en este punto dependerán
enteramente del lenguaje de programación, por lo cual, por ejemplo, en el diagrama de arriba tenemos un método tipo void y otro
tipo String (tipos propios del lenguaje Java).
UML
La relación de asociación se representa usando una flecha convencional, como la que se muestra abajo, y sirve para representar
una relación débil entre dos clases, sin un significado especial. En este caso, existe una asociación entre las clases Avión y
Aeropuerto.
1..1
Llegan
0..*
UML
0..4
Tiene
0..*
UML
Extends Extends
UML
UML: Herencia
UML
UML: Herencia
UML
UML: Herencia
UML
Superclase / padre
Subclases/ hijos
UML
UML
UML: Herencia
UML
UML: Polimorfismo
La diferencia entre herencia y polimorfismo es que herencia está relacionada con clases y polimorfismo
con métodos.
UML
UML: Polimorfismo
UML
UML: Ejemplo - Polimorfismo
Class: main
UML
UML: Sobre Carga Métodos
Para declarar una clase o un método como abstractos se usa la palabra clave abstract, tal como podemos observar a continuación.
Podemos notar que la clase abstracta Figura cuenta con dos métodos abstractos: getArea y getPerimetro. Pero al ser abstractos
no cuentan con un cuerpo, el cual debe ser provisto por sus clases hijas. Después de todo, no sabemos cómo se halla el área
de una “figura” geométrica en general, pero sí de una en particular (como un círculo o un triángulo). Por lo anterior, una subclase
de una clase abstracta, deberá implementar todos los métodos abstractos de dicha clase, y si no lo hace, la subclase deberá ser
también abstracta. A continuación, podemos observar como dos subclases implementarían los métodos abstractos de la
clase Figura de forma diferente.
UML
UML: Clases Abstractas
UML
• Constantes (ya que los atributos que les agreguemos serán public static final de manera implícita y por defecto).
• Declaraciones de métodos públicos (es decir, sin cuerpo), que por defecto y de manera implícita serán abstract final.
• Métodos estáticos.
• Métodos default.
En la mayoría de los casos, las interfaces cuentan con las dos primeras opciones, es decir, constantes y declaraciones de métodos.
Además, de manera similar a como pasa con las clases abstractas, una interfaz no puede ser instanciada, sino que puede ser
implementada por una clase o bien ser heredada por otra interfaz.
UML
Swing es una API (Application Programming Interface) usada para la construcción de interfaces gráficas de usuario o GUI (del
inglés Graphical User Interface). Las GUI creadas con Swing son independientes de la plataforma. Es decir, una vez se construye
dicha interfaz gráfica, esta se puede ejecutar de la misma forma en sistemas operativos diferentes, tales como Windows, macOS o
en una distribución de Linux. Además, su comportamiento y aspecto visual es similar en todas estas plataformas. Esto, nos permitirá
crear con una sola base de código aplicaciones para los sistemas operativos de escritorio más usados. Si bien Swing es una API
muy extensa, en la presente lectura nos ocuparemos sólo de los aspectos básicos necesarios para crear interfaces gráficas
rápidamente.
Todos los componentes en swing son JComponent que se pueden agregar a las clases de contenedor.
Java Swing
Creación de una aplicación con interfaz gráfica usando Swing en NetBeans
Para crear una aplicación con interfaz gráfica, lo primero que debemos hacer es crear un proyecto. Bastará con un proyecto
tipo Java Application, tal como lo hacemos con las aplicaciones de consola. La primera diferencia que encontraremos respecto a las
aplicaciones de consola, es que acá no es necesario crear una clase principal y mucho menos un método main(), ya que el
formulario (o ventana) que crearemos hará las veces de punto de partida de la aplicación.
Arquitectura MVC
Intermediario
Java Swing
En el paquete de vista creamos un Jframe From
Java Swing
Componentes
Área Diseño
Implementación de Propiedades
Código por eventos
Java Swing
Diseñemos una vista de esta manera:
4 Etiquetas
- Numero: Nombre de los
- Numero:
Componentes
- Resultado
- Calculadora Basica
3 Componentes de texto
- Numero1
- Numero2 4 Botones
- Resultado (no editable ) - Suma:
- Resta:
- Division
- Multiplicacion
Java Swing
En el paquete de controlador creamos una clase llamada operaciones de la siguiente manera:
Java Swing
Implementamos el evento click para los 4 botones en la cual configuramos las operaciones:
Botón sumar
De igual manera
configuramos los
demás botones
resta,
multiplicación y
división.
Java Swing
Resultado final.
El FlowLayout, es aquel layout que ubica a todos los componentes en forma horizontal, en el orden que le digamos.
Primero tenemos que crear el contenedor(JFrame, JPanel, etc), y luego atravez del metodo “setLayout()” asignarle el
layout correspondiente.
Java Swing
El BoxLayout es un Layout simple que permite poner los componentes de forma horizontal (igual que un FlowLayout) o
de forma vertical.
Java Swing
Botones y etiquetas
Etiquetas
Representan componentes con texto fijo; son inertes, sólo muestrean el texto asociado y no reciben eventos; una etiqueta
es un objeto de la clase JLabel.
Botones
Swing define varios tipos de botones; la clase base de todos los botones es Abstract Button, es una clase abstracta que
encapsula propiedades y métodos comunes a los diversos tipos de botones.
JButton La clase JButton representa el botón común; se crea especificando una cadena, un icono, ambos, o aun sin
especificar elemento
Componentes de texto
Los componentes swing que se usan para editar o mostrar texto forman una jerarquía de clases cuya clase base es
JTextComponent; esta última es una clase abstracta que agrupa las características comunes de los campos de texto.
JTextComponent se encuentra en el paquete javax.swing.text.
JTextComponent
Los componentes de texto soportan una amplia variedad de caracteres de códigos alfabéticos; en ellos se puede insertar, eliminar o
seleccionar caracteres; es texto modificable por el usuario; la clase dispone del constructor JTextComponent() que crea un
componente de texto editable; sus métodos son:
JTextField, JPasswordField
La clase JTextField representa un campo de texto modificable por el usuario; con este componente se edita una línea de texto con el
ancho, alineación y tipo de letra que se desee.
JPasswordField se deriva de JTextField; representa un campo de texto con la particularidad de que enmascara los caracteres
cuando se visualiza; se utiliza para editar una clave secreta o password; por omisión, cada carácter de un JPasswordField se
reemplaza por *.
Java Swing
JTextField, JPasswordField
Los constructores de JTextField son:
Los constructores de JPasswordField tienen los mismos argumentos que JText Field; sus métodos son:
• void setEchoChar(char c), coloca c para enmascarar los caracteres del campo.
• char getEchoChar(), devuelve el carácter que enmascara; por defecto es *.
• char[] getPassword(), devuelve la cadena del campo en un arreglo de caracteres.
Bases de Datos
Tipos de relaciones
MySQL
MySQL es el DBMS detrás de algunos de los mejores sitios web y aplicaciones basadas en la web del mundo, incluyendo Airbnb,
Uber, LinkedIn, Facebook, Twitter y YouTube.
MySQL
¿Qué es MySQL?
MySQL
¿Qué es el lenguaje de consulta estructurado (SQL)?
Utilizaremos el XAMPP, el cual provee el motor de
Herramientas de base de datos Mysql y también un administrador
Desarrollo web del mismo.
Descargar XAMPP:
https://www.apachefriends.org/es/download.html
1
Comandos
SHOW DATABASES;
SQL (Terminal MySQL)
CREATE DATABASES;
MySQL
SHOW nombreTabla;
MySQL
Comandos
CREATE TABLE
SQL (Terminal MySQL)
MySQL
¿Que es JDBC?
Librería ofrecida oficialmente por Mysql, se
llama JDBC (por su sigla en Inglés de Java
DataBase Connectivity o conexión a base
de datos desde Java). Esta librería permite
gestionar de manera transparente y fácil la
conexión a la base de datos y la ejecución de
sentencias de inserción, modificación,
eliminación y lectura de información desde
Java.
MySQL
Descargar JDBC
https://www.mysql.com/products/connector/
JDBC
Creamos un proyecto
como lo hemos
realizado hasta ahora.
PruebaJDBC
JDBC
En la clase mainPruebaJDBC
del proyecto PruebaJDBC.
Le damos la siguientes
instrucciones, y ejecutamos el
proyecto.
Diagrama
Entidad
Relación
COMENCEMOS DESDE YA,
A VIVIR LOS HECHOS
QUE CONECTAN.