Vous êtes sur la page 1sur 144

INSTRUCTOR

Danny Ruales
Ingeniero Informático - UCE
Maestría en Gerencial Empresarial - EPN

* Tata Solution Center


* Coordinador de Arquitectura
Empresarial – Fabrica Software
* Project Managet
CEC-EPN: Enero 2012
Contacto: druales@hotmail.com
AGENDA UNIDAD 1:
 Presentación.
 1. Introducción
 1.1. Historia
 1.2. James Gosling
 1.3. Plataforma java.
 1.4 Características lenguaje java.
 1.5 Términos comunes
 1.6. Paradigma OO
1.6.1. Encapsulamiento
1.6.2. Herencia
1.6.3. Polimorfismo
 1.7. Paquetes
 1.8. Identificadores
 1.9. Configuración Ambiente Programación
AGENDA UNIDAD 2:
2. Conceptos Básicos
 2.1. Variables
 2.1.1 Tipos de Datos
 2.1.2 Arreglos
 2.1.3 Tipos Enum
 2.2. Operadores
 2.2.1. Asignación
 2.2.2. Aritméticos
 2.2.3. Relaciones y Condiciones
 2.2.4 Desplazamiento
AGENDA UNIDAD 3:
3. Conceptos Básicos
 3.1. Expresiones, Sentencias
 3.2 Control de Flujo
 3.2.1 Sentencia if-else
 3.2.2 Sentencia swicth
 3.2.3 Sentencia for
 3.2.4 Sentencia while – do while
 3.2.5 Sentencias: break, continue, return
 3.3 Conversión de Datos (Casting)
AGENDA UNIDAD 4:
4. Conceptos Avanzados
 4.1. Modificadores de Acceso
 4.2 Interfaces y Clases Abstractas
 4.3 Manejo de Excepciones
 4.4 Lectura desde Teclado
AGENDA UNIDAD 5:
5. Colecciones
 5.1. Interfaces
 5.1.1 Collection
 5.1.2 Set / List / Map /
 5.2 Implementaciones
 6.2.1 Set / List / Map /
HERRAMIENTA DE TRABAJO MODULO JAVA
IDE : Netbeans 8.2 + Java 8
Base de Datos: MySQL Server 5.5 (modulo 2)
Administrador Corporativo BD: SQLYog
(modulo 2)
Servidor de Aplicaciones: Apache Tomcat
1.-Introducción
 El lenguaje Java así como la máquina virtual, comenzaron
como un proyecto interno de Sun Microsystems en 1990

 Java es un lenguaje de programación orientado a objetos

 El lenguaje en sí mismo toma mucha de su sintaxis de C y


C++, pero tiene un modelo de objetos más simple y
elimina herramientas de bajo nivel, que suelen inducir a
muchos errores, como la manipulación directa de
punteros o memoria
1.1 Historia
• La compañía Sun desarrolló la
implementación de referencia original
para los compiladores de Java, máquinas
virtuales, y librerías de clases en 1991 y las
publicó por primera vez en el 1995.

• A partir de mayo del 2007, en


cumplimiento con las especificaciones del
Proceso de la Comunidad Java, Sun volvió
a licenciar la mayoría de sus tecnologías
de Java bajo la Licencia Pública General
de GNU.
GNU: licencia más ampliamente usada[1] en el mundo del software y garantiza a los
usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar,
compartir (copiar) y modificar el software
1.2 James Gosling
 Nacido el 19 de mayo de 1956 en
Canadá es un famoso ingeniero de
las ciencias de la computación
conocido como el padre y creador del
lenguaje de programación Java.

 Realizó el diseño original y la


implementación del compilador y la
máquina virtual Java, por lo que fue
elegido miembro de la Academia
Nacional de Ingeniería de Estados
Unidos
1.3 Plataforma Java

APLICACIONES
ANDROID
1.3.1 Java Platform, Standard
Edition (JSE):
 Es la base para todas las plataformas nos proporciona un
entorno de escritorio Java. Tiene el compilador,
herramientas, módulos de ejecución, y la API de Java
que le permiten escribir, probar, implementar y ejecutar
applets y aplicaciones,

 Está compuesta por el JRE (Java Runtime Environment)


y el JDK (Java Development Kit).
Orientada al desarrollo con independencia de la
plataforma.
1.3.2 Java Platform, Enterprise
Edition (JEE):
 Se trata de una plataforma multiusuario y distribuida
para desarrollo y despliegue de aplicaciones
empresariales JAVA
 Ofrece servicios adicionales, herramientas y APIs para
apoyar a la simplificación del desarrollo de aplicaciones
empresariales.
Evolución de Java (1)
Evolución de Java(2)
 Java SE 8 — lanzada en marzo de 2014. Cabe destacar:
 Diferentes mejoras en seguridad.
 Diferentes mejoras en concurrencia.
 Añade funcionalidad para programación funcional
mediante expresiones Lambda.
 Mejora la integración de JavaScript.
 Nuevas API para manejo de fechas y tiempo (date -
time).
 Java SE 9 —23 de marzo del 2017:
Java is Everywhere
1.3.3 Java Platform, Micro
Edition (JME):
 Es un conjunto de tecnologías y especificaciones
dirigidas a los consumidores y dispositivos embebidos,
como teléfonos celulares, asistentes personales
digitales (PDA), impresoras, TV
1.3.4 Arquitectura Java

CORE JAVA (JRE, JDK)


1.4 Características:
El lenguaje Java se creó con cuatro objetivos principales:
 Debería usar la metodología de la programación orientada
a objetos.
 Debería permitir la ejecución de un mismo programa en
múltiples sistemas operativos.
 Debería incluir por defecto soporte para trabajo en red.

 Debería diseñarse para ejecutar código en sistemas


remotos de forma segura.
1.4 Características:
 Robusto
Java realiza verificaciones en busca de problemas tanto
en tiempo de compilación como en tiempo de ejecución.
 Seguro
En el lenguaje, características como los punteros o el
casting implícito que hacen los compiladores de C y C++ se
eliminan para prevenir el acceso ilegal a la memoria
1.4 Características:
 Simple
Java ofrece toda la funcionalidad de un lenguaje potente,
pero sin las características menos usadas y más confusas
de éstos

 Orientado a Objetos
Java trabaja con sus datos como objetos y con interfaces a
esos objetos

 Distribuido
Java se ha construido con extensas capacidades de
interconexión TCP/IP
Industria relacionada:
 Son innumerables las compañías que desarrollan
aplicaciones para Java y/o están volcadas con esta
tecnología:
 La industria de la telefonía móvil está fuertemente
influenciada por la tecnología Java.
1.5 Términos comunes:
 El JRE (Java Runtime
Environment) es el que interpreta
(ejecuta) los programas
compilados (llamados bytecode).
 En su forma más simple, el
entorno en tiempo de ejecución
de Java está conformado por una
Máquina Virtual de Java o JVM,
que es un conjunto de bibliotecas
Java y otros componentes
necesarios para que una
aplicación escrita en lenguaje Java
pueda ser ejecutada
Java Development Kit o (JDK).
Se trata de un conjunto de herramientas (programas y librerías) que
permiten desarrollar , compilar, ejecutar, generar documentación, etc.
para programas en lenguaje Java.
 Componetes del JDK:
Un compilador: javac.
 Análisis sintáctico: estuctura de las líneas de código
 Análsis semántico: El significado de la línea programada
Un interprete: java
Un generador de documentos: javadoc.

Ejemplo de uso.
java – version (versión instalada de java)
javac hola.java (compilada la clase hola.java)
Java Development Kit o (JDK).

class hola
{
public static void main(String[] args)
{
System.out.println("ESTA ES UNA IMPRESION");
}
}
1.5 Términos comunes:
1.5 Términos comunes
 SDK (software development kit) de Java 2, contiene las
clases y comandos para utilizar y compilar programas.

JDK
SDK

 JAVAPATH: es una ruta completa del directorio donde


está instalado JDK.
C:\Program Files (x86)\Java
 X86= 32 bits
 X64= 64 bits
1.5 Términos comunes
 CLASSPATH: son las bibliotecas o clases de usuario
empaquetadas en archivos jar.

 PATH: variable donde se agrega la ubicación de JDK.


1.5 Términos comunes
 La máquina virtual Java es  Intérprete de ByteCodes
capaz de interpretar y
ejecutar instrucciones  Compilador Java

expresadas en un código
Traduce código fuente a
binario especial (el bytecode código intermedio.
Java), el cual es generado por  Interprete de Java
el compilador del lenguaje
Java, la JVM genera el Virtual Machine(JVM)
concepto de portabilidad. (ByteCodes
interpretados -
ejecutados)
1.5 Términos comunes
 IDE
Un entorno de desarrollo integrado,
llamado también IDE (sigla en inglés
de integrated development
environment), es un software
compuesto por un conjunto de
herramientas de programación.
Un IDE es un entorno de programación
que ha sido empaquetado como un
programa de aplicación, es decir,
consiste en un editor de código, un
compilador, un depurador y un
constructor de interfaz gráfica (GUI)
Como trabaja java

Portabilidad
1.6 Programación orientada a objetos
 La programación Orientada a objetos (POO) es una
forma especial de programar, más cercana a como
expresaríamos las cosas en la vida real que otros tipos
de programación.

 La programación orientada a objetos es un


paradigma de programación que usa objetos y sus
interacciones para diseñar aplicaciones y programas de
computadora. Está basado en varias técnicas,
incluyendo herencia, modularidad, polimorfismo y
encapsulamiento.
1.6 Programación orientada a objetos
 Para entender este modelo vamos a revisar 4 conceptos
básicos:
 Objetos

 Clases

 Herencia

 Envío de mensajes
1.5 Términos comunes
 Constructor. (new)
Cuando se construye un objeto es necesario inicializar sus
variables con valores coherentes La solución en los
lenguajes orientados a objetos es emplear los constructores.
Un constructor es un método perteneciente a la clase que
posee unas características especiales:
 Tiene el mismo nombre de la clase.
 Es el primer método que se ejecuta.
 Se ejecuta en forma automática.
 No puede retornar datos.
 Inicializa los atributos
1.6 Programación orientada a objetos
OBJETOS
 Un objeto del mundo real es cualquier cosa que vemos a
nuestro alrededor
 Los Objetos en POO, al igual que los objetos del
mundo real, también tienen características y
comportamientos
 Un objeto de software mantiene sus características en
una o más "variables", e implementa su
comportamiento con "métodos". Un método es una
función o subrutina asociada a un objeto.
1.6 Programación orientada a objetos
CLASES
 La instancia de una clase es otra forma de llamar a un
objeto. En realidad no existe diferencia entre un objeto y
una instancia. Sólo que el objeto es un término más
general, pero los objetos y las instancias son ambas
representación de una clase.

 Definición Teórica: Una instancia es un objeto de una


clase en particular.
1.6 Programación orientada a objetos
ENVIO DE MENSAJES
 Un objeto es inútil si está aislado. El medio para que
un objeto interactúe con otro son los mensajes.
Hablando en términos un poco más técnicos, los
mensajes son invocaciones a los métodos de los
objeto
1.6 Programación orientada a objetos
ELEMENTOS DE UNA CLASE
OBJETO
1.6 Programación orientada a objetos
 Los objetos son entidades que combinan estado,
comportamiento e identidad:
 El estado está compuesto de datos, será uno o varios atributos
a los que se habrán asignado unos valores concretos (datos).

 El comportamiento está definido por las funciones o


métodos con que puede operar dicho objeto, es decir, qué
operaciones se pueden realizar con él.

 La identidad es una propiedad de un objeto que lo diferencia


del resto, dicho con otras palabras, es su identificador.
Principios de la POO
Los principios básicos de la programación orientada
objetos son:
 Encapsulamiento.
 Herencia.
 Polimorfismo.
1.6.1 Encapsulamiento
 Encapsulación es el término de orientación a objetos
que describe la vinculación de unas operaciones y
estado a un objeto particular. La encapsulación está
íntimamente relacionada con la ocultación de la
información, definiendo qué partes de un objeto son
visibles y qué partes están ocultas.

Por ejemplo, en la siguiente


figura podemos ver que solo
los miembros públicos de una
clase son los que interactúan
con el exterior, protegiendo
así el acceso a los miembros
privados de un objeto.
1.6.1 Encapsulamiento
 Los elementos declarados como Public son accesibles
tanto desde fuera como desde dentro de la clase.

 Los elementos declarados como Private son accesibles


sólo desde la misma clase donde fueron definidos.

 Los elementos declarados como Protected son


accesibles desde la misma clase donde fueron
definidos y en sus subclases.
1.6.2 Herencia
 La herencia es un mecanismo que permite la
definición de una clase a partir de la definición de otra
ya existente. La herencia permite el refinamiento o
especialización de una clase existente. La herencia es
la característica clave de los sistemas orientados a
objeto para propiciar la reusabilidad:
1.6.2 Herencia
Implementación:
Se usa la palabra reservada extends

public class Principal extends Abstracta

De esta manera todos los metodos y atributos de la clase


Abstracta pasan hacer miembros de la clase llamada
Principal
1.6.3 Polimorfismo
 Se refiere a la capacidad de poder invocar una misma
funcionalidad pero que dependiendo del contexto de
la invocación la implementación tiene
comportamiento diferente.
 Ejm:
 int sumar (int num1, int num2);
 Matriz sumar (Matriz a, Matriz b);
 Complejo sumar (Complejo comp1, Complejo comp2);
Paquetes
 Un paquete implica una colección de clases, algo
parecido a una librería. En el uso, un paquete es un
poco semejante a un directorio. Si se pone una
declaración de un paquete en un archivo éste será sólo
visible a otras clases en el mismo paquete.
 La palabra clave para definir un paquete es: package
 Ejm:
package edu.cec.curso.java;
La sentencia import
 La sentencia import permite usar una clase
directamente con su nombre en lugar de especificarla
totalmente incluyendo el nombre completo del
paquete al que pertenece. Un ejemplo de esto es que a
la clase java.awt.Button normalmente se le referencia
simplemente como Button, pero para se requiere haber
puesto al inicio del archivo fuente la siguiente línea:
import java.awt.*;
Identificadores
 Los identificadores nombran variables, métodos, clases y objetos;
cualquier cosa que el programador necesite identificar o usar.
 En Java, un identificador comienza con una letra, un subrayado
(_) o un símbolo de dólar ($). Los siguientes caracteres pueden ser
letras o dígitos. Se distinguen las mayúsculas de las minúsculas y
no hay longitud máxima.
 Serían identificadores válidos:

 identificador nombre_usuario Nombre_Usuario


_variable_del_sistema $transaccion y su uso sería, por ejemplo:
 int contador_principal;
 char lista_de_ficheros;
 float cantidad_en_dolares;
Palabras reservadas
 Las siguientes son las palabras reservadas que están
definidas en Java y que no se pueden utilizar como
identificadores:

Nuevas palabras reservadas: assert, enum.


Las palabras con asteriscos son reservadas y actualmente no son utilizadas.
Comentarios en java
// comentarios para una sola línea
/* comentarios de una o más líneas */

Estilo de codificación.
CamelCase-> lowerCamelCase

Ejemplo: ejemploDeLowerCamelCase.
Arquitectura Aplicaciones a
construirse
Diagrama de despliegue de las
soluciones
APLICACIÓN DE
ESCRITORIO

MySQL

Apache –
Intranet Tomcat /
GlassFish

APLICACIÓN WEB
TALLER DE TRABAJO
INTRODUCCION A JAVA
AGENDA:
2. Conceptos Básicos
 2.1. Variables
 2.1.1 Tipos de Datos
 2.1.2 Arreglos
 2.1.3 Tipos Enum
 2.2. Operadores
 2.2.1. Asignación
 2.2.2. Aritméticos
 2.2.3. Relaciones y Condiciones
 2.2.4 Desplazamiento
Variables
 Una clase en Java puede contener variables y métodos.
 Las variables pueden ser tipos primitivos como int,
char, etc.
Los bloques de sentencias compuestas en Java se
delimitan con dos llaves. Las variables de Java sólo son
válidas desde el punto donde están declaradas hasta el
final de la sentencia compuesta que la engloba.
Ámbito de las variables
 Variables de instancia. (Miembro).
 Variables de método. (locales).
Tipos de Datos
Podemos diferenciar los datos en Java en dos categorías de
datos principales: los tipos primitivos y los tipos
referenciados.

Los tipos primitivos contienen un sólo valor e incluyen


los tipos como los enteros, coma flotante, los caracteres, de
tipo booleano etc.

Los tipos referenciados Las variables de tipo referencia a


objetos en cambio almacenan direcciones y no valores
directamente. Una referencia a un objeto es la dirección de
un área en memoria destinada a representar ese objeto. El
área de memoria se solicita con el operador new.
Tipos de datos primitivos en Java
Tipos de datos: Enteros
Enteros:
Tipos de Datos : Reales
Reales en coma flotante:
Tipos de Datos:
Booleanos:
boolean:
true
false

Caracteres:
char.
Por ejemplo: char sexo = `M`;
Arreglos
 Un arreglo es un tipo de objeto que contiene valores
llamados elementos. A diferencia de las variables que
son accedidas por un nombre, los elementos de un
arreglo son accedidos por números comenzando por
cero. De esta manera se puede “avanzar” a través del
arreglo, accediendo a cada elemento en turno.
Arreglos
 Se pueden declarar en Java arrays de cualquier tipo:
char s[ ];
int iArray[ ];

 Incluso se pueden construir arrays de arrays:


int tabla[ ][ ] = new int[4][5];

 En Java un array es realmente un objeto, porque tiene


redefinido el operador new []. Tiene una función miembro:
length. Se puede utilizar este método para conocer la
longitud de cualquier array.
int a[ ][ ] = new int[10][3];
a.length; /* 10 */
a[0].length; /* 3 */
Tipos Enum
 Los tipos de datos enumerados aparecieron desde Java 5
y lo que permiten es que una variable tenga solo un
valor dentro de un conjunto de valores predefinidos, en
otras palabras, valores dentro de una lista enumerada.
Los tipos enumerados sirven para restringir la selección
de valores a algunos previamente definidos

Ejem:
 public enum Day { SUNDAY, MONDAY, TUESDAY,
WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Tipos Enum
 No es necesario que las constantes dentro de los enums
estén en mayúsculas pero en las convenciones de código
de Sun se pide hacerlo de esta manera. Se debe tomar en
cuenta que un tipo enumerado puede ser declarado
dentro o fuera de una clase, pero NO dentro de un
método.

 Los tipos enumerados no son enteros o cadenas, cada uno


es simplemente una instancia del tipo enumerado del que
es declarado. Se puede pensar como una especie de
arreglo de variables estáticas finales.
Ejercicio Tipos Enum
Ejercicio Tipos Enum
 Debido a que los tipos enumerados son como una clase
de tipo especial en Java, hay muchas cosas que se
pueden realizar dentro de un enum, además de
declarar constantes, un tipo enumerado puede
contener constructores, métodos y variables.

 Tomando nuestro ejemplo anterior lo modificamos


para suponer que necesitamos saber el tamaño de café,
podemos pensar en escenario donde además de saber
el tamaño del café necesitemos la cantidad en onzas de
cada tamaño, esto podemos hacerlo de la siguiente
manera:
Ejercicio Tipos Enum
Operadores Aritméticos
Operador Uso Descripción

+ op1 + op2 Suma op1 y op2

- op1 - op2 Resta op2 de op1

* op1 * op2 Multiplica op1 por op2

/ op1 / op2 Divide op1 por op2

% op1 % op2 Calcula el resto de dividir op1 entre op2


Operadores Comparación
Operador Uso Devuelve verdadero si

> op1 > op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2

< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2

== op1 == op2 op1 y op2 son iguales

!= op1 != op2 op1 y op2 son distintos


Operadores Asignación
 El operador = es un operador binario de asignación de
valores. El valor almacenado en la memoria y
representado por el operando situado a la derecha del
operador es copiado en la memoria indicada por el
operando de la izquierda.
Operador Uso Equivalente a
+= op1 += op2 op1 = op1 + op2
-= op1 -= op2 op1 = op1 - op2
*= op1 *= op2 op1 = op1 * op2
/= op1 /= op2 op1 = op1 / op2
%= op1 %= op2 op1 = op1 % op2 (resto division)
Operadores Relacionales y Condiciones
Operador Uso Devuelve verdadero si...
op1 y op2 son ambos verdaderos,
&& op1 && op2
condicionalmente evalúa op2
op1 y op2 son ambos verdaderos, siempre
& op1 & op2
evalúa op1 y op2
op1 o op2 son verdaderos, condicionalmente
|| op1 || op2
evalúa op2
op1 o op2 son verdaderos, siempre evalúa op1 y
| op1 | op2
op2
! ! op op es falso
La Clase Math
 La clase Math representa la
librería matemática de Java.
Al importarla se tiene acceso
al conjunto de funciones
matemáticas estándar:
Get and Set
 Los métodos de tipo get y set nos permiten acceder a los
miembros de un objeto.
Ejercicio 1
1.- Implementar la clase Posicion que represente un punto
(x,y) en el eje de las coordenadas. Cada posición viene definida
por dos valores enteros x e y. Las operaciones disponibles son:

· Constructor por defecto, se corresponde con la posición (0,0).


· Constructor al que se le pasa como parámetro los valores
iniciales de las coordenadas X e Y.
· Métodos para modificación y consulta (set/get) de los
atributos de la clase.
· Métodos para incrementar y decrementar los valores de cada
una de las coordenadas de la posición (incX, incY, decX, decY).
· Un método para establecer los valores de las coordenadas
(setXY).
AGENDA UNIDAD 3:
3. Conceptos Básicos
 3.1. Expresiones, Sentencias
 3.2 Control de Flujo
 3.2.1 Sentencia if-else
 3.2.2 Sentencia swicth
 3.2.3 Sentencia for
 3.2.4 Sentencia while – do while
 3.2.5 Sentencias: break, continue, return
 3.3 Conversión de Datos (Casting)
Control de Flujo
 Las sentencias dentro del código fuente son ejecutados
generalmente de arriba hacia abajo dependiendo del
orden que aparecen. Las sentencias de control sin
embargo cambian el flujo de ejecución a través de
decisiones, bucles o ramas, permitiendo que el
programa ejecute de manera condicional particulares
bloques de código.
if-then, if-then-else, switch
for, while, do-while
break, continue, return
Sentencia if-else
Sentencia swicth
Sentencia for
Sentencia while – do while
Sentencia while – do while
For enlazado (enhanced for )
 La sentencia for también tiene otra forma de diseño
para iterar a nivel de colecciones y arreglos. Y permite
hacer los bucles mas compactos y fáciles de leer :
Conversión de tipos en Java.
 Como en muchos otros lenguajes de programación, en Java
también es posible asignar un valor de un tipo a una
variable de otro tipo.

 En java se puede forzar un dato, variable o una expresión a


convertirse o cambiarse a un nuevo tipo de dato.

 El operador cast realiza este proceso, es decir convierte


datos, variables o expresiones a un nuevo tipo de dato, su
formato es:
(nuevovotipo) dato
Conversión de tipos en Java.
Ejemplos:
// declaración
int alfa;
// Asignación
alfa = 20;
// Cambio de tipo
(float) alfa;
Conversión de Datos (Casting)
 Casting significa decirle explícitamente a Java que haga
una conversión. La operación de cast puede ser de
ensanchamiento o estrechamiento.
 Ejem:
int i = 5; short s = 259;
double d =(double) i; byte b=(byte) s;

int valor=1;
float valor2=(float)valor;
double valor3=(double)valor2;
Conversión de Datos (Casting)
 Variable numérica a variable numérica
int alfa1=0; double alfa2=3.1416;
alfa1= (int)alfa2;

 Variable numerica a string


int zeta=50;
String alfa= String.valueOf(zeta);
Conversión de Datos (Casting)
 Variable numérica a objeto numérico
 Caso 1: usando constructor
int zeta=80;
Float alfa4 = new Float(zeta);

 Caso 2: ya existe el objeto numérico


Double alfa5 = new Double(0);
Int zeta=30;
alfa5=Double.valueOf(String.valueOf(zeta));
Conversión de Datos (Casting)
 Objeto Numérico a Variable numérica
Todos los objetos numéricos deben crearse inicializados
aunque sea a 0 (cero)
Integer alfa = new Integer(300);
Int zeta = alfa.intValue();

 Objeto numérico a String


Float alfa = new Float(“3.45”);
String beta = new String(” ”);
Beta = alfa.toString();
Conversión de Datos (Casting)
 Objeto Numérico a Objeto Numérico
Integer alfa=new Integer(50);
Double beta=new Double(0);
beta = beta.valueOf(alfa.toString());

 String a variable numérica


String alfa= new String(“3.5”);
double beta= 0;
beta= Double.parseDouble(alfa);
Conversión de Datos (Casting)
 String a Objeto Numérico
String alfa8=new String(“50”);
Double alfa9=new Double(0);
alfa9 = alfa9.valueOf(alfa8);
TALLER DE TRABAJO
6
AGENDA UNIDAD 5:
5. Conceptos Avanzados
 5.1. Modificadores de Acceso
 5.2 Interfaces y Clases Abstractas
 5.3 Manejo de Excepciones
 5.4 Lectura desde Teclado
Modificadores de acceso
Los modificadores de acceso permiten al diseñador de una
clase determinar quien accede a los datos y métodos
miembros de una clase.
Los modificadores de acceso preceden a la declaración de un
elemento de la clase (ya sea dato o método), de la siguiente
forma:

[modificadores] tipo_variable nombre;

[modificadores] tipo_devuelto nombre_Metodo (


lista_Argumentos );
Modificadores de acceso
Uso de los modificadores
Modificadores
Interfaces y Clases Abstractas
Clases Abstractas
 Una clase abstracta es una clase de la que no se puede
crear objetos. La utilidad de estas clases estriba en que
otras clases hereden de ésta, por lo que con ello se
consigue reutilizar código. Para declarar una clase como
abstracta se utiliza la palabra clave abstract.
 Un método abstracto es un método declarado en una
clase para el cual esa clase no proporciona la
implementación (el código)
Interfaces y Clases Abstractas
Interfaces y Clases Abstractas
Interfaces y Clases Abstractas
Interfaces y Clases Abstractas
 Una interfaz en Java es una colección de métodos sin sus
implementaciones con un nombre. Una interface
también puede declarar constantes. Por cuanto una
interface es simplemente una lista de métodos sin
implementación, (métodos abstractos).
 Las interfaces están asociadas a comportamiento.
Interfaces
 Ventajas:
El uso de interfaces proporciona las siguientes
ventajas:
 Organizar la programación.
 Obligar a que ciertas clases utilicen los mismos
métodos (nombres y parámetros).
 Establecer relaciones entre clases que no estén
relacionadas.
Interfaces
Interfaces
Manejo de Excepciones
 Una excepción es un evento que ocurre durante la
ejecución de un programa que interrumpe el normal
flujo de la ejecución de las instrucciones del programa.
Excepciones
Excepciones
 Captura de Excepciones:
try / cacth /finally

 Lanzar Excepciones: (Aborta la ejecución)


 throw
public int metodo1() {
throw new UnsupportedOperationException("Not supported yet.");
}

 Propagar Excepciones: (propagación hacia la


siguiente capa)
 Throws
public int readNumberFromFile(File f) throws IOException { ... }
Lectura desde Teclado
Lectura desde Teclado
 Desde java 1.5 se tiene disponible la clase Scanner que
facilita la tarea de lectura desde teclado. Basta
instanciar esta clase pasándole el System.in y a partir
de ahí se tienen muchos métodos para obtener
exactamente lo que se necesita:
AGENDA UNIDAD 6:
6. Colecciones
 6.1. Interfaces
 6.1.1 Collection
 6.1.2 Set / List / Map /
 6.2 Implementaciones
 6.2.1 Set / List / Map /
Colecciones en Java
 La API de Colecciones (Collections) de Java provee a los
desarrolladores con un conjunto de clases e interfaces
que facilitan la tarea de manejar colecciones de objetos.
En cierto sentido, las colecciones trabajan como los
arreglos, la diferencia es que su tamaño puede cambiar
dinámicamente y cuentan con un comportamiento
(métodos) más avanzado que los arreglos.

 La mayoría de las colecciones de Java se encuentran en el


paquete java.util.
Colecciones en Java
 Entre otras características, las clases colección se
redimensionan automáticamente, por lo que se puede
colocar en ellas cualquier número de objetos, sin
necesidad de tener que ir controlando continuamente
en el programa la longitud de la colección.

 Son estructuras más complejas que los arrays, ya que


además de poseer un interfaz para realizar todas las
operaciones básicas de agregación y extracción,
poseen otras más complejas (algoritmos), para realizar
inserciones, borrado y búsquedas de objetos.
Colecciones en Java
 Además de estas clases, Java proporciona un conjunto
de Interfaces que permiten trabajar de una forma
abstracta con estas estructuras omitiendo los detalles
de sus implementaciones.
 Existen tres tipos genéricos de contenedores definidos
por interfaces.
List: Colección de objetos con una secuencia
determinada
Set: Colección de objetos donde no se admiten
duplicados de objetos
Map Almacena parejas de objetos (clave-valor)
Interface Collection
 La interfaz Collection permite básicamente añadir,
eliminar y recorrer la estructura gracias a un Iterator.
public class EjemploCollection
{
public static void hacerAlgo(Collection collection)
{
Iterator iterador = collection.iterator();
while(iterador.hasNext())
{
Object object = iterador.next();
//hacer algo con object aqui...
}
}
}
Interface Collection
 A continuación, se muestran algunas formas de llamar
este método con diferentes subtipos de Collection:

Set conjunto = new HashSet();


List lista = new ArrayList();
EjemploCollection.hacerAlgo(conjunto);
EjemploCollection.hacerAlgo(lista);
Interface Collection
 Sin importar el subtipo de Collection que se esté
utilizando, existen algunos métodos comunes para
agregar y quitar elementos de una colección:

String cadena = "Esto es una cadena de texto";


Collection coleccion = new HashSet();
boolean huboUnCambio = coleccion.add(cadena);
boolean seEliminoElemento = coleccion.remove(cadena);
Interface Collection
 También se pueden agregar y remover colecciones de
objetos. Aquí hay algunos ejemplos:
Set unConjunto = ... // se agregan los elementos del conjunto
List unaLista = ... // se agregan los elementos de la lista aquí
Collection coleccion = new HashSet();
coleccion.addAll(unConjunto);
coleccion.addAll(unaLista);
coleccion.removeAll(unaLista);
coleccion.retainAll(unConjunto);

addAll() agrega todos los elementos encontrados en la colección pasada como


argumento al método. El objeto colección no es agregado, solamente sus
elementos. Si en lugar de utilizar addAll() se hubiera utilizado add(), entonces
el objeto colección se habría agregado y no sus elementos individualmente.
Interface List
La característica más importante de una List es el
orden de almacenamiento, asegurando que los
elementos siempre se mantendrán en una secuencia
determinada.

Permite generar un ListIterator para moverse a través


de las lista en ambas direcciones.
Interface List
 Como List es una interfaz, es necesario instanciar un
implementación concreta de la interfaz para poder
utilizarla. Existen varias implementaciones de la interfaz
List en el API de Java:
 java.util.ArrayList
List listaA = new ArrayList();
 java.util.LinkedList
List listaB = new LinkedList();
 java.util.Vector
List listaC = new Vector();
 java.util.Stack
List listaD = new Stack();
Interface List
 Para agregar elementos a un lista se llama su método
add(). Este método es heredado de la interfaz Collection.
Algunos ejemplos:
List listaA = new ArrayList();
listaA.add("elemento 1");
listaA.add("elemento 2");
listaA.add("elemento 3");
listaA.add(0, "elemento 0");
 El orden en el cual se agregan los elementos a la lista es
almacenado, de manera que se puede accesar a dichos elementos
en el mismo orden. Para esto, se puede utilizar el método
get(índice) o a través de un iterador regresado por el método
iterator():
Interface List
List listaA = new ArrayList();
listaA.add("elemento 0");
listaA.add("elemento 1");
listaA.add("elemento 2");
//access via index
String elemento0 = listaA.get(0);
String elemento1 = listaA.get(1);
String elemento3 = listaA.get(2);
Interface List
 //acceso mediante un iterador
Iterator iterador = listaA.iterator();
while(iterador.hasNext()
{
String elemento = (String) iterador.next();
}
//acceso mediante un ciclo for nuevo:
for(Object objecto : listaA)
{
String elemento = (String) objecto;
}
Interface Set
 No se admiten objetos duplicados, por lo que cada
elemento que se añada a un Set debe ser único.
 Set tiene el mismo interfaz que Collection, y no garantiza
el orden en que se encuentren almacenados los objetos
que contenga.
 Como Set es una interface, es necesario instanciar una
implementación concreta de la interfaz para poder usarla.
Existen varias clases en el API de Java que implementan la
interfaz Set:
 java.util.EnumSet
 java.util.HashSet
 java.util.LinkedHashSet
 java.util.TreeSet
Interface Set
Set setA = new EnumSet();
Set setB = new HashSet();
Set setC = new LinkedHashSet();
Set setD = new TreeSet();

Ejemplo:
Set setA = new HashSet();
setA.add("elemento 0");
setA.add("elemento 1");
setA.add("elemento 2");
Interface Set
 //acceso mediante iterador
Iterator iterador = setA.iterator();
while(iterador.hasNext()
{
String elemento = (String) iterador.next();
}
//acceso mediante ciclo for
for(Object objecto : setA)
{
String elemento = (String) objecto;
}
Interface Map
 Los Mapas almacenan parejas de valores, relacionando
un objeto (clave) con otro objeto (valor).

 Las claves no pueden estar duplicadas y sólo puede


tener una valor asociado.

 Los valores pueden estar duplicados.

 Se pueden extraer las claves (Set), los valores


(Collection) o la entrada conjunta de ambos (Set).
ANEXOS:
Modelo de Clases
 Un diagrama de clases sirve para visualizar las
relaciones entre las clases que involucran el sistema,
las cuales pueden ser asociativas, de herencia, de uso y
de contenimiento.
 Un diagrama de clases esta compuesto por los
siguientes elementos:
 Clase: atributos, métodos y visibilidad.
 Relaciones: Herencia, Composición, Agregación,
Asociación y Uso.
Clase
 Es la unidad básica que encapsula toda la información
de un Objeto (un objeto es una instancia de una clase).
A través de ella podemos modelar el entorno en
estudio (una Casa, un Auto, una Cuenta Corriente,
etc.).
Atributos y Métodos
Relaciones entre Clases:
 Ya definido el concepto de Clase, es necesario explicar
como se pueden interrelacionar dos o más clases (cada
uno con características y objetivos diferentes).
 Antes es necesario explicar el concepto de cardinalidad
de relaciones: En UML, la cardinalidad de las
relaciones indica el grado y nivel de dependencia, se
anotan en cada extremo de la relación y éstas pueden
ser:
 uno o muchos: 1..* (1..n)
 0 o muchos: 0..* (0..n)
 número fijo: m (m denota el número).
Herencia (Especialización/Generalización):
 Indica que una subclase hereda los métodos y
atributos especificados por una Super Clase, por ende
la Subclase además de poseer sus propios métodos y
atributos, poseerá las características y atributos
visibles de la Super Clase.
Agregación:
 Para modelar objetos complejos, n0 bastan los tipos de
datos básicos que proveen los lenguajes: enteros, reales
y secuencias de caracteres. Cuando se requiere
componer objetos que son instancias de clases
definidas por el desarrollador de la aplicación,
tenemos dos posibilidades:
Agregación:
 Por Valor: Es un tipo de relación estática, en donde el
tiempo de vida del objeto incluido esta condicionado
por el tiempo de vida del que lo incluye. Este tipo de
relación es comunmente llamada Composición (el
Objeto base se contruye a partir del objeto incluido, es
decir, es "parte/todo").
 Por Referencia: Es un tipo de relación dinámica, en
donde el tiempo de vida del objeto incluido es
independiente del que lo incluye. Este tipo de relación
es comunmente llamada Agregación (el objeto base
utiliza al incluido para su funcionamiento).
Asociación:
 La relación entre clases conocida como Asociación,
permite asociar objetos que colaboran entre si. Cabe
destacar que no es una relación fuerte, es decir, el
tiempo de vida de un objeto no depende del otro.

Un cliente puede tener asociadas muchas Ordenes de


Compra, en cambio una orden de compra solo puede tener
asociado un cliente.
Navegabilidad
 En un extremo de una asociación se puede indicar la
navegabilidad mediante una flecha. Significa que es
posible "navegar" desde el objeto de la clase origen
hasta el objeto de la clase destino. Se trata de un
concepto de diseño, que indica que un objeto de la
clase origen conoce al (los) objeto(s) de la clase
destino, y por tanto puede llamar a alguna de sus
operaciones.
Dependencia o Instanciación (uso):
 Representa un tipo de relación muy particular, en la que una clase es
instanciada (su instanciación es dependiente de otro objeto/clase). Se
denota por una flecha punteada.
 El uso más particular de este tipo de relación es para denotar la
dependencia que tiene una clase de otra, como por ejemplo una
aplicación grafica que instancia una ventana (la creación del Objeto
Ventana esta condicionado a la instanciación proveniente desde el
objeto Aplicación):

Cabe destacar que el objeto creado (en este caso la Ventana gráfica)
no se almacena dentro del objeto que lo crea (en este caso la
Aplicación).
Clases en java
 La clase Date se utiliza para representar una fecha
y una hora. Se pueden manipular el día, mes, año,
día de la semana, horas minutos y segundos.
Constructores de Date
Métodos de Date
Formateo de Fechas
 The DateFormat Class
La clase astracta DateFormat y su subclase
concreta:SimpleDateFormat provee la habilidad de
formatear y paresear fechas y horas.
El constructor normalmente
toma un string de formateo
hecho de los siguientes
símbolos:
Ejemplo Formateo
BigDecimal
 La clase java.math.BigDecimal es una clase de Java para
representar números con coma flotante, de manera
precisa.
 La clase BigDecimal tiene métodos para operar al
mismo (sumar, restar, multiplicar, dividir).
 Para números con punto flotante (es decir, con parte
decimal) la forma recomendada de construir un objeto
BigDecimal es a través de un String.
 BigDecimal a = new BigDecimal("10.20"); La
construcción utilizando un double no es precisa, por la
impresición intrínseca del Double.

Vous aimerez peut-être aussi