Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cliclo 2 JAVA DocV5

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

Lenguaje de

Programación
JAVA
https://www.java.com/es/
PRIMEROS PASOS EN
JAVA

¿Qué es la tecnología Java y para qué la necesito?

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

El lenguaje de programación Java

Java es un lenguaje de programación compilado. Es decir, una vez el programa ha sido


escrito, es necesario compilarlo antes de ejecutarlo. Esto va en contravía de los
lenguajes interpretados (tales como Python), en los cuales el código escrito se ejecuta
directamente en el computador, sin necesidad del paso previo de compilación.

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.

El Java runtime environment Java virtual machine (JVM)


El Java development kit
(JRE)
O “máquina virtual de Java”, es una capa intermedia entre
(JDK), el sistema operativo (sea Windows, MacOS, Linux u otro
compatible) y la aplicación que escribimos en Java. Una
o “entorno de ejecución de Java”, incluye las o “kit de desarrollo de Java”, comprende las aplicación escrita en Java no se ejecutará directamente
herramientas y librerías necesarias para ejecutar aplicaciones (normalmente de consola), sobre el sistema operativo, sino que será necesario contar
un programa escrito y compilado en el lenguaje herramientas y librerías necesarias para el primero con la JVM para su ejecución. Lo anterior permite
Java. Es probable que este ya lo tengamos desarrollo, la compilación y el empaquetado de que un programa escrito en el lenguaje Java se pueda
instalado en nuestras máquinas, ya que, al aplicaciones en el lenguaje Java. El JDK suele ejecutar en cualquier sistema operativo que cuente con la
descargar e instalar una aplicación escrita en Java también incluir en su instalación el JRE y, JVM, sin necesidad de volver a compilarlo o de hacer
en nuestro equipo (que es algo frecuente), es normalmente, debemos instalarlo antes que el cambios significativos en su código. Para que la JVM se
necesario instalar a la par el JRE, incluso sin que “entorno integrado de desarrollo” (IDE) que pueda ejecutar en el sistema operativo de un computador,
nos demos cuenta. vayamos a utilizar para la creación de bastará con instalar en este el Java runtime environment
aplicaciones. (JRE) o el Java development kit (JDK).
Herramientas de
Desarrollo

Descargar jdk:
https://www.oracle.com/java/technologies/downloads/#java17
1

Descargar el IDE:
https://netbeans.apache.org/
2

Crear un nuevo proyecto del tipo:


Java Application
3

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:

Las funciones son un conjunto de líneas de código (instrucciones), encapsulados en un bloque,


usualmente reciben parámetros, cuyos valores utilizan para efectuar operaciones y adicionalmente
retornan un valor. En otras palabras una función puede recibir parámetros o argumentos (algunas no
reciben nada), hace uso de dichos valores recibidos como sea necesario y retorna un valor usando la
instrucción return, si no retorna algo, entonces no es una función. En java las funciones usan el
modificador static.
¿Funciones, métodos
o procedimientos?
Métodos:

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

ARREGLO UNIDIMENSIONAL: VECTOR


ARREGLOS
ARREGLOS
ARREGLOS
ARREGLOS

Lectura y Escritura de un Vector JAVA

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

La programación estructural se basa en 3 tipos de técnicas: secuencial,


selectiva y repetitiva y la P.O.O depende de varias técnicas como lo son la
herencia, cohesión, abstracción polimorfismo, acoplamiento, y
encapsulamiento.
Programación
Orientada a Objeto
Programación Orientada a Objetos
Programación
Orientada a Objeto
Programación Orientada a Objetos
● La POO está basada en el comportamiento o modo de actuar
del hombre y más no el de la máquina

● La POO se fundamenta o sustenta en los siguientes


conceptos:
○ Clase
○ Objeto
○ Instancia
○ Atributos
○ Métodos
Programación
Orientada a Objeto

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

La instanciación se produce al momento de crear un objeto


Un Objeto es una instancia de una Clase específica

EJEMPLO:

Tenemos la clase Vehículo

○ 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

Diagrama de Clases: Atributos


● Los atributos describen a una clase. Pueden ser Públicos, Privados o Protegidos.

● 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

Diagrama de Clases: Métodos


● Los métodos de una clase describen la forma en la cual ésta interactúa con su
entorno. Pueden ser Públicos, Privados o Protegidos.

● 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

En la implementación, estos métodos son segmentos de código en la forma de


funciones

La clase Vehículo puede incluir los métodos:


○ Encender
○ Acelerar
○ Virar
○ Frenar
Programación
Orientada a Objeto

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

Ejemplo – Estructura en Java


Class Estudiantes
main
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étodos set y get


● En ocasiones es necesario dar acceso a algunos atributos de nuestra clase, sin
eliminar el encapsulamiento.
● Estos métodos permiten el acceso a los atributos de una clase, que están
encapsulados como privados.
● Con el método set se establecen o asignan valores a los atributos encapsulados en
una clase. Este recibe un parámetro de entrada con el cual se establece el valor al
atributo encapsulado y no retorna nada.
● Con el método get se obtiene o retorna el valor de un atributo encapsulado. El nombre
del método se define con el tipo de valor que se desea retornar. No recibe parámetros
Programación
Orientada a Objeto

Diagrama de Clase con variable encapsulada, set


y get
Programación
Orientada a Objeto
Métodos set y get Java - Sintaxis
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.

Esta es la sintaxis de cada uno:


Método get

Método set
UML

UML: modelado de aplicaciones


La programación orientada a objetos (POO), como paradigma de programación, se apoya en el diseño orientado a objetos.
Cuando hablamos de diseño en este contexto, no nos referimos necesariamente al diseño artístico o visual de una
aplicación, sino al modelado y representación de su estructura. Específicamente, el diseño orientado a objetos consiste en
un método de diseño que abarca el proceso de descomposición orientada a objetos y una notación para bosquejar modelos
lógicos y físicos, así como estáticos y dinámicos del sistema que se está diseñando. En otras palabras, se trata de
descomponer en objetos un sistema y/o su dominio, representándolos mediante una notación apropiada.

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.

En el segundo caso podríamos tener, además, dos propósitos:

1. Representar la estructura de un programa ya existente.


2. Representar la estructura de un programa que apenas vamos a desarrollar.

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.

Por su parte, los métodos se representan de forma muy similar, así:

• 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

UML: Relaciones entre Clases


Además de las clases con sus atributos y métodos, en los diagramas de clases es posible representar cuatro tipos de relaciones
entre clases: asociación, agregación, composición y herencia.

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

UML: Ejemplo Asociación


Las asociaciones representan las relaciones más generales entre clases, es decir, las relaciones con menor contenido semántico. Para UML una asociación va
a describir un conjunto de vínculos entre las instancias de las clases.
Las asociaciones pueden ser binarias (conectan dos clases) o n-arias (conectan n clases), aunque lo más normal en un modelo es utilizar sólo relaciones
binarias (en general, y sin entrar en detalles, se puede afirmar que una relación n-aria puede modelarse mediante un conjunto finito de relaciones binarias).
La forma de representar las asociaciones binarias en UML es mediante una línea que conecta las dos clases. En general, las asociaciones son bidireccionales,
esto es, no tienen un sentido asociado.
UML

UML: Relaciones entre Clases


La relación de agregación, tal como se muestra abajo, empieza con un rombo vacío (blanco) y finaliza en una flecha. Este tipo de
relación representa una relación más fuerte, pero en la cual el ciclo de vida de un objeto de la clase donde termina la relación no
depende del ciclo de vida de un objeto de la clase donde inicia. En este caso, hay una relación fuerte entre Auto y Llanta, pero el
ciclo de vida de un objeto de la clase Llanta no requerirá que exista un objeto de la clase Auto.

0..4
Tiene

0..*
UML

UML: Ejemplo Agregación


La agregación es una asociación con unas connotaciones semánticas más definidas: la agregación es la relación parte-de, que presenta a una entidad como un
agregado de partes (en orientación a objeto, un objeto como agregado de otros objetos).
UML

UML: Relaciones entre Clases


La relación de composición es similar a la de agregación, iniciando en un rombo lleno (negro). En este caso, la relación entre
ambas clases es aún más fuerte, y el ciclo de vida de un objeto de la clase donde termina la relación siempre dependerá del ciclo de
vida de un objeto de la clase donde inicia esta. Por ejemplo, en este caso, un objeto de la clase Matrícula exigirá que exista un
objeto de la clase Auto.
UML

UML: Ejemplo composición


La composición implica que los componentes de un objeto sólo pueden pertenecer a un solo objeto agregado, de forma que cuando
el objeto agregado es destruido todas sus partes son destruidas también.
UML

UML: Relaciones entre Clases


Por último, tenemos la relación de herencia. Esta siempre se representa usando una flecha como las que se muestran a
continuación, y siempre representan la relación entre una o varias clases hijas y su clase padre. Recordemos que, en una relación
de herencia, las clases hijas heredan los métodos y atributos de su clase padre, pudiendo agregar a su vez sus propios métodos y
atributos.

Extends Extends
UML

UML: Herencia
UML

UML: Herencia
UML

UML: Herencia
UML

UML: Ejemplo herencia


La herencia es la típica relación de generalización/especialización entre clases. En UML la herencia se representa mediante una
flecha, cuya punta es un triángulo vacío. La flecha que representa a la herencia va orientada desde la subclase a la superclase.
Cuando de una superclase se derivan varias subclases existen dos notaciones diferentes, aunque totalmente equivalentes, para su
representación.

Superclase / padre

Subclases/ hijos
UML
UML

UML: Herencia
UML

UML: Relaciones entre Clases


Finalmente, a continuación, tenemos un diagrama de clases UML simple, pero que cuenta con los elementos más comunes en
diagramas de este tipo. Observe con detenimiento las clases, métodos, atributos y relaciones representadas en el diagrama, y se
hará una idea del dominio que se quiere representar.
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

Es cuando existen métodos con


el mismo nombre, con
funcionalidad similar; en clases
que son completamente
independientes una de la otra.
Class: main
UML

UML: Clases Abstractas


Una clase abstracta es una clase que cuenta con uno o varios métodos abstractos. Un método abstracto es aquel en el cual se
declara el nombre, su tipo de retorno, y sus parámetros, pero se especifica como abstracto y como tal no tiene cuerpo (no cuenta
como implementación). La idea es que son las subclases (clases hijas) de las clases abstractas las encargadas de dar cuerpo
(implementar) el o los métodos abstractos. Además, una clase abstracta no se puede instanciar. Las que sí se podrían instanciar
son sus clases hijas. En todo lo demás, una clase abstracta funciona como una clase padre cualquiera.

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

UML: Clases Interfaces


Java incorpora una construcción del lenguaje, mediante la declaración interface, que permite enunciar un conjunto de
constantes y de cabeceras de métodos abstractos; éstos deben implementarse en las clases y constituyen la interfaz de la
clase. En cierto modo, es una forma de declarar que todos los métodos de una clase son públicos y abstractos, con ello se
especifica el comportamiento común de todas las clases que implementen la interfaz; su declaración es similar a la de una
clase; en la cabecera se utiliza la palabra reservada interface en vez de class, por ejemplo:
UML

UML: Clases Interfaces


En Java, una interfaz es un tipo similar a una clase (no confundir con interfaces gráficas de usuario), que sólo puede contener:

• 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

UML: Clases Interfaces


Ahora cabe preguntarnos. Una vez declarada, ¿cómo se utiliza una interfaz? La respuesta es que las interfaces no se instancian, ni
las clases heredan de ellas; una interfaz se implementa. Es decir, una clase puede implementar una o varias interfaces, usando la
palabra clave implements. Y si una clase implementa una interfaz, deberá implementar, es decir, darle cuerpo, a todos los métodos
de dicha interfaz. A continuación, se muestra cómo dos clases implementan la interfaz anterior. Al hacerlo, deben implementar,
como mínimo, los métodos de dicha interfaz.
Java Swing

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.

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.
Java Swing

Diagrama de jerarquía de la clase Java


Swing

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.

Creamos un nuevo proyecto de la forma como lo hemos venido creado.


Java Swing
Creamos 2 nuevos paquetes 1ero llamado vista y el 2do llamado controlador.

El diseño de una arquitectura Modelo-Vista-Controlador


(MVC), en la que utilizaremos en la vista, los controles swing
que proporciona Java y en las capas de controlador y modelo
usaremos la lógica de definición de clases como lo hemos visto.

MVC es una propuesta de arquitectura de software utilizada


para separar el código por sus distintas responsabilidades, vista
para la interfaz gráfica, Controlador para la lógica del negocio y
modelo para la interacción con los datos. Esto ayuda a
mantener las distintas capas que se encargan de hacer una
tarea muy concreta. Esto ofrece beneficios diversos en cuanto a
recursos de tiempo en desarrollo y mantenimiento del mismo.
Java Swing

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.

Realizar la implementación de los demás botones.


Java Swing

Que son los Layouts?


Son administradores de contenidos, permiten definir la distribución de componentes en una ventana.
Java Swing

Layouts mas comunes


Java Swing
AbsoluteLayout permite indicar las coordenadas (x,y) donde queremos que se visualice cada elemento. No es recomendable utilizar este tipo de
Layout. La aplicación que estamos diseñando tiene que visualizarse correctamente en dispositivos con cualquier tamaño de pantalla.

Referencia: el trabajado en la sesión anterior.


Java Swing

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

La clase GridLayout es un controlador de distribución(Layout Manager) que establece los componentes de un


contenedor en una rejilla rectangular. El recipiente se divide en rectángulos de igual tamaño, y un componente se va
colocando en cada rectángulo.
Java Swing
BorderLayout, es un layout que ubica los componentes en cualquiera de sus 5 regiones que tiene.. Un componente
podemos ubicarlo arriba, abajo, izquierda o a la derecha.
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

Jerarquía de clases tipo botón.


Java Swing

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.

Jerarquía de componentes de texto.


Java Swing

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:

• String getText(), devuelve el texto que tiene el componente.


• String getText(int dspl,int lon), devuelve el texto del componente a partir del desplazamiento dspl y de longitud lon.
• void setText(String txt), reemplaza el texto del componente por txt; si txt = null o es una cadena vacía, elimina el texto del
componente.
• void.setEditable(boolean b), un componente de texto es editable por omisión; con este método se especifica si lo es o no.

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:

• JTextField(), campo de texto vacío, de 0 columnas.


• JTextField(int cols), campo de texto vacío, de cols columnas.
• , campo de texto ajustado a la cadena JTextField(String mensaje) mensaje.
• JTextField(String mensaje,int col), campo de texto con la cadena mensaje, de cols columnas.

Los constructores de JPasswordField tienen los mismos argumentos que JText Field; sus métodos son:

• void setFont(Font tipo)


• void setHorizontalAlignment(int alig), alineación del texto; los valores posibles de align son las constantes de SwingConstants
(heredadas por JTextField): RIGHT, LEFT, CENTER, TRAILING, LEADING; este último es el predeterminado.
• void setColumns(int cols), pone el número de columnas preferido para el campo.

JPasswordField hereda los métodos anteriores y además dispone de éstos:

• 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

Definición de base de datos


Una base de datos es una colección organizada de información estructurada, o datos, típicamente almacenados electrónicamente
en un sistema de computadora. Una base de datos es usualmente controlada por un sistema de gestión de base de datos
(DBMS). En conjunto, los datos y el DBMS, junto con las aplicaciones que están asociados con ellos, se conocen como un sistema
de base de datos, que a menudo se reducen a solo base de datos.
Bases de Datos

Tipos de base de datos


Bases de Datos
¿Qué es una base de datos relacional?
Una base de datos relacional es un tipo de base de datos que almacena y proporciona acceso a puntos de datos relacionados
entre sí. Las bases de datos relacionales se basan en el modelo relacional, una forma intuitiva y directa de representar datos en
tablas. En una base de datos relacional, cada fila de la tabla es un registro con un ID único llamado clave. Las columnas de la tabla
contienen atributos de los datos, y cada registro generalmente tiene un valor para cada atributo, lo que facilita el establecimiento de
las relaciones entre los puntos de datos.
Bases de Datos

¿Qué es una base de datos relacional?


Filas representan instancias, como tal son los datos propios de una entidad.
Bases de Datos
¿Qué es una base de datos relacional?
Columnas, representamos el tipo de datos que vamos a representar.
Bases de Datos
Tipos de relaciones
Bases de Datos
Tipos de relaciones
Bases de Datos
Tipos de relaciones
Bases de Datos

Tipos de relaciones
MySQL

¿Qué es una base de datos de MySQL?


MySQL es un sistema de gestión de bases de datos relacionales de código abierto basado en SQL. Fue diseñado y optimizado para
aplicaciones web y puede ejecutarse en cualquier plataforma. A medida que surgían nuevos y diferentes requisitos con Internet,
MySQL se convirtió en la plataforma elegida por los desarrolladores web y las aplicaciones basadas en la web. Debido a que está
diseñada para procesar millones de consultas y miles de transacciones, MySQL es una opción popular para las empresas de
comercio electrónico que necesitan administrar múltiples transferencias de dinero. La flexibilidad bajo demanda es la característica
principal de 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

Abrir el panel de control de XAMPP: 2

Inicializar Apache y MySQL 3

Seleccionar Admin en MySQL 4


Esto nos abre el SGBD phpMyAdmin
MySQL

Comandos SQL (Terminal MySQL)


Abrimos la terminal, voy a utilizar PowerShell y lo voy a ejecutar como administrador.
MySQL

Comandos
SHOW DATABASES;
SQL (Terminal MySQL)

CREATE DATABASES;
MySQL

Comandos SQL (Terminal MySQL)


USE nombreDataBase;

SHOW nombreTabla;
MySQL

Comandos SQL (Terminal MySQL)


Tipos de Datos
MySQL

Comandos SQL (Terminal MySQL)


MySQL

Comandos SQL (Terminal MySQL)


MySQL

Comandos SQL (Terminal MySQL)


MySQL

Comandos
CREATE TABLE
SQL (Terminal MySQL)
MySQL

Comandos SQL (Terminal MySQL)


MySQL

Comandos SQL (Terminal MySQL)


¿Que es el CRUD?
MySQL

Comandos SQL (Terminal MySQL)


INSERT INTO

Insertar mas de un registro a la vez.


MySQL

Comandos SQL (Terminal MySQL)


SELECT * FROM nombreTabla;

SELECT * FROM nombreTabla WHERE (condicion);


MySQL

Comandos SQL (Terminal MySQL)


UPDATE nombreTabla SET (campos a actualizar) WHERE (condición);
MySQL

Comandos SQL (Terminal MySQL)


DELETE FROM nombreTabla WHERE (condición);
JDBC

¿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

Ejemplo para establecer la conexión.


Paso 1 Paso 2
(Buscamos la ruta en donde
Paso 3
guardamos el Driver)

Creamos un proyecto
como lo hemos
realizado hasta ahora.
PruebaJDBC
JDBC

Ejemplo para establecer la conexión.

En la clase mainPruebaJDBC
del proyecto PruebaJDBC.

Le damos la siguientes
instrucciones, y ejecutamos el
proyecto.

Salida esperada en consola.


JDBC
JDBC
JDBC
JDBC
JDBC
JDBC
JDBC
JDBC
JDBC
Ejemplo Proyecto
MySQL
pet (Mascotas)

Diagrama Clases y MER (Modelo Entidad Relación)


En este enlace encontraras el proyecto completo y unos
Diagrama videos relacionados.
Clases https://1drv.ms/u/s!Ari-2UTJHWs9jp5K5HE6d_vWbxKzFA?e=kifM7c

Diagrama
Entidad
Relación
COMENCEMOS DESDE YA,
A VIVIR LOS HECHOS
QUE CONECTAN.

También podría gustarte