Top Banner
Java Básico Anahí Salgado @anncode public class HolaMundo { public static void main(String[] args) { System.out.println(“Hola Mundo”); } }
148

Java Basico Platzi

Apr 16, 2017

Download

Software

Anahí Salgado
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java Basico Platzi

Java Básico

Anahí Salgado @anncode

public class HolaMundo {public static void main(String[] args) {

System.out.println(“Hola Mundo”);}

}

Page 2: Java Basico Platzi

¿Java?

Anahí Salgado @anncode

Page 3: Java Basico Platzi

•  Empezar rápidamente – C y C++

•  Escribir menos código – POO – Reutilización

•  Escribir mejor código – Buenas prácticas de

codificación

•  Desarrollar con mayor rapidez – Más simple que C++

Anahí Salgado @anncode

Page 4: Java Basico Platzi

•  Lenguaje más utilizado a nivel mundial

•  Google •  Amazon •  Empresas financieras

–  Incrementa tus posibilidades de conseguir trabajo

–  Aumentará tus aspiraciones profesionales

Anahí Salgado @anncode

Page 5: Java Basico Platzi

Plan de Certificaciones

Anahí Salgado @anncode

Page 6: Java Basico Platzi

Anahí Salgado @anncode

Page 7: Java Basico Platzi

1991

Anahí Salgado @anncode

Page 8: Java Basico Platzi

Anahí Salgado @anncode

Page 9: Java Basico Platzi

Anahí Salgado @anncode

James Goslin

Page 10: Java Basico Platzi

Comunicación entre dispositivos Anahí Salgado @anncode

Page 11: Java Basico Platzi

2009

Anahí Salgado @anncode

Page 12: Java Basico Platzi

Anahí Salgado @anncode

Page 13: Java Basico Platzi

•  Java es un lenguaje de

programación de alto nivel

–  Simple –  Orientado a Objetos –  Distribuido –  Multihilo –  Arquitectura Neutral –  Portable –  Alto desempeño –  Seguro

Anahí Salgado @anncode

Page 14: Java Basico Platzi

Filosofía

Write Once

Anahí Salgado @anncode

Run Anywere

Page 15: Java Basico Platzi

¿Qué versión elegir?

Java EE Java SE Java ME

Anahí Salgado @anncode

Page 16: Java Basico Platzi

Java SE

Java Standard Edition

Anahí Salgado @anncode

Page 17: Java Basico Platzi

Componentes

Anahí Salgado @anncode

JDK

Java Development Kit

JRE

Java Runtime Environment

Page 18: Java Basico Platzi

Java Virtual Machine

Anahí Salgado @anncode

Page 19: Java Basico Platzi

Programando con Java

Verifica que lo tengas instalado y configurado $ java -version$ javac

Anahí Salgado @anncode

Page 20: Java Basico Platzi

Instalando JDK

Anahí Salgado @anncode

Page 21: Java Basico Platzi

Instalando JDK Variables de entorno

Vamos a Mi Pc -> Propiedades,

•  Pestaña Opciones avanzadas, seleccionamos Variables de entorno -> Path

•  Hacemos click en Modificar y añadimos la ruta completa del directorio

•  “C:\Program Files\Java\jdk1.7.0_51\bin”.

Anahí Salgado @anncode

Page 22: Java Basico Platzi

Hola Mundo

Anahí Salgado @anncode

•  Editor de Textos •  Consola de comandos (CMD)

Page 23: Java Basico Platzi

Fases de programación

Editar

Anahí Salgado @anncode

Compilar

Cargar

Verificar Interpretar 1 2

3

4 4

Escribir código fuente

Compilador javac

Ejecución

Page 24: Java Basico Platzi

Fases de programación

Anahí Salgado @anncode

Page 25: Java Basico Platzi

El método Main

Método que es el punto de entrada de una aplicación Java.

Anahí Salgado @anncode

Page 26: Java Basico Platzi

El método Main •  Declara todas las acciones realizadas por tu

aplicación

public static void main (String[] args) { // acciones

}

•  Sin él, la aplicación no se ejecutará, regresando el siguiente error: In class NoMain: void main(String args[]) no está definido.

Anahí Salgado @anncode

Page 27: Java Basico Platzi

El método Main •  El método main contiene dos modificadores

requeridos, public y static. • No devuelve ningún valor, por lo que tiene un tipo de retorno de vacío. • El método principal tiene un identificador método (nombre) de ”main". • Acepta cero o más objetos de tipo String (String [] args). Esta sintaxis le permite escribir en los valores de la línea de comandos para ser utilizado por el programa mientras se está ejecutando.

Anahí Salgado @anncode

Page 28: Java Basico Platzi

Usando un IDE (Eclipse) •  IDE (Integrated

Development Enviroment):

•  Es un entorno de programación que ha sido empaquetado como un programa de aplicación. •  Editor de código •  Compilador •  Depurador •  Constructor de

interfaz Gráfica

Hola Mundo

Anahí Salgado @anncode

Page 29: Java Basico Platzi

Tipos de Datos

Anahí Salgado @anncode

Page 30: Java Basico Platzi

Tipos de Datos

•  DEFINICIÓN: – Un espacio de memoria al que le asignamos

un contenido, puede ser un valor numérico, de tipo carácter o cadena de caracteres.

•  Por ejemplo: – a = 8 – a = 56 – a = b

Anahí Salgado @anncode

Page 31: Java Basico Platzi

Tipos de Datos

Tipo Primitivo Tipo Objeto

Anahí Salgado @anncode

Page 32: Java Basico Platzi

Tipos ENTEROS Anahí Salgado @anncode

byte Rango

-128 a 127

short Rango

-32,768 a 32,7676

int Rango

-2,147,483,648 to 2,147,483,647

long Rango

-9,223,372,036,854,775,808

to +9,223,372,036,85

4,775,807

1 byte

2 bytes

4 bytes

8 bytes

Page 33: Java Basico Platzi

Tipos PUNTO FLOTANTE Anahí Salgado @anncode

float Rango

1.40129846432481707e-45 to

3.40282346638528860e+38

double Rango

4.94065645841246544e-324d to

1.79769313486231570e+308d

4 byte

8 bytes

Page 34: Java Basico Platzi

Tipos TEXTO Anahí Salgado @anncode

char Rango

Unicode 2 byte

Page 35: Java Basico Platzi

Tipos LOGICOS Anahí Salgado @anncode

boolean Rango

true o false 1 bit

Page 36: Java Basico Platzi

Nombres en Java

•  Java sigue la siguiente convención para nombrar variables

–  Es sensible al uso de mayúsculas y minúsculas –  Debe comenzar con una letra, se permite usar $ y “_” –  Las letras posteriores pueden ser letras, números, $ y “_” –  Por convención se debe usar la técnica “camello” –  También por convención, las constantes se escriben en

mayúsculas y contienen “_”.

Anahí Salgado @anncode

Page 37: Java Basico Platzi

Upper Camel Case Lower Camel Case

Page 38: Java Basico Platzi

CAST

Anahí Salgado @anncode

En la programación hay situaciones donde se necesita cambiar el tipo de dato

Page 39: Java Basico Platzi

Cast

•  Un Cast es una operación en Java que:

– Da como resultado una variable con un tipo de datos diferente a su fuente.

– Puede usarse entre tipos de datos primitivos, instancias de una clase y tipos de objetos primitivos.

Anahí Salgado @anncode

Page 40: Java Basico Platzi

Cast Anahí Salgado @anncode

Page 41: Java Basico Platzi

Cast a tipos primitivos

•  Se puede realizar el cast para todos los tipos de datos primitivos, con excepción de boolean.

•  A menudo, el tipo cast de tipos primitivos se realiza en situaciones donde el tipo del resultado es más grande que su tipo original.

Anahí Salgado @anncode

Page 42: Java Basico Platzi

Cast a tipos primitivos

•  Por lo tanto, a menudo se puede usar un byte o char como un int, un int como un long, un int como un float y como un doble también.

Anahí Salgado @anncode

Page 43: Java Basico Platzi

Arrays

Anahí Salgado @anncode

Page 44: Java Basico Platzi

Arrays

•  Los arreglos se pueden definir como objetos en los que podemos guardar mas de una variable

Anahí Salgado @anncode

Page 45: Java Basico Platzi

Arrays

•  La estructura de declaración de un arreglo es la siguiente:

tipo_dedato[] nombre_variable;

tipo_dedato nombre_variable[];

Anahí Salgado @anncode

Page 46: Java Basico Platzi

Arrays. Definir tamaño

•  Para asignar a un arreglo su tamaño o capacidad, se hace de la siguiente forma:

arreglo = new tipo_dedato[capacidad];

Anahí Salgado @anncode

Page 47: Java Basico Platzi

Arrays. Asignar valores

•  Una vez se tiene declarado un arreglo, y al mismo se le ha asignado un tamaño o capacidad, podemos accesar a los datos dentro del mismo y asignarle valores.

arreglo[indicador] = valor;

Anahí Salgado @anncode

Page 48: Java Basico Platzi

OPERADORES

Anahí Salgado @anncode

Una vez que el código fuente de Java tienen variables, las podemos usar para crear y formar expresiones que

regresen valores.

Page 49: Java Basico Platzi

Operadores aritméticos

•  Son los símbolos que se usan para realizar aritmética básica en el lenguaje de programación java

Anahí Salgado @anncode

Page 50: Java Basico Platzi

Concatenación de cadenas

•  El operador + puede usarse para agregar o concatenar cadenas

•  Unión de dos elementos.

System.out.println (“El balance de la cuenta es: “ + balance );

Anahí Salgado @anncode

Page 51: Java Basico Platzi

Operadores de Asignación

= += -= /= %=

x += 2; x = x + 2; Anahí Salgado @anncode

Page 52: Java Basico Platzi

Operadores de incremento y decremento

•  Incremento: Se usan para agregar un 1 al valor de la expresión ++

•  Decremento: Se usan para substraer un 1 del valor de la expresión. --

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 53: Java Basico Platzi

Prefijo y postfijo

•  Un prefijo se refiere a colocar un operador antes del operando ++i --i

•  Un posfijo se refiere a colocar un operador después del operando. i++ i--

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 54: Java Basico Platzi

Incremento

Anahí Salgado @anncode

Page 55: Java Basico Platzi

Equidad y operadores relacionales

•  Todas las expresiones creadas con equidad y operadores relacionales regresaran un valor booleano, dependiendo si la comparación se realiza o no.

Anahí Salgado @anncode

Page 56: Java Basico Platzi

Equidad y operadores relacionales

•  Hace uso de dos operandos, uno en cada lado del operador.

•  Los operadores de equidad se describen a continuación:

Anahí Salgado @anncode

Page 57: Java Basico Platzi

•  Los operadores relacionales se describen a continuación:

Equidad y operadores relacionales

Anahí Salgado @anncode

Page 58: Java Basico Platzi

•  Combinan expresiones que regresar un valor boolean

AND &&

OR || NOT !

Operadores lógicos

Anahí Salgado @anncode

Page 59: Java Basico Platzi

Operadores lógicos

Anahí Salgado @anncode

Page 60: Java Basico Platzi

CONTROL FLUJO

Anahí Salgado @anncode

Las sentencias de código en java son ejecutadas secuencialmente desde arriba hasta abajo en el orden en que van apareciendo.

Sin embargo podemos controlar el flujo usando sentencias condicionales, ciclos, etc.

Page 61: Java Basico Platzi

If/Else

•  Un condicional es una expresión booleana.

•  La sentencia se ejecuta solamente si la expresión booleana es verdadera. if (condición) {

instrucciones} else {

instrucciones}

Anahí Salgado @anncode

Page 62: Java Basico Platzi

Switch •  A diferencia de sentencias if / else, la

sentencia switch puede tener un número de posibles rutas de ejecución

Anahí Salgado @anncode

Page 63: Java Basico Platzi

Cliclo While

•  Se ejecuta continuamente un bloque de código mientras una condición particular, es cierto. Su sintaxis se puede expresar como:

while (condicion) { //instrucciones }

Anahí Salgado @anncode

Page 64: Java Basico Platzi

Cliclo For

•  La sentencia proporciona una forma compacta para iterar sobre un rango de valores.

for (inicializa; fin-condicion; incremento) { instrucciones

}

Anahí Salgado @anncode

Page 65: Java Basico Platzi

Cliclo For extendido foreach

•  Es más fácil para recorrer colecciones de datos sin necesidad de conocer o definir el número de elementos a recorrer

for ( TipoDato elemento : coleccion ) {        Instrucciones}

Anahí Salgado @anncode

Page 66: Java Basico Platzi

PROGRAMACIÓN ORIENTADA A OBJETOS

(POO)

Anahí Salgado @anncode

Page 67: Java Basico Platzi

Programación Orientada a Objetos

Una nueva forma de pensar

Anahí Salgado @anncode

Page 68: Java Basico Platzi

Programación Orientada a Objetos

Se trata de descomponer el problema en subproblemas y más

subproblemas

Anahí Salgado @anncode

Page 69: Java Basico Platzi

Programación Orientada a Objetos

Definir un Dominio del Problema PROBLEM DOMAIN

Recopilación de requisitos del cliente y

tener por escrito un alcance

¿Qué queremos lograr?

Anahí Salgado @anncode

Page 70: Java Basico Platzi

Programación Orientada a Objetos

Fijarnos en el

escenario del problema y tratar de simularlo con objetos

Anahí Salgado @anncode

Page 71: Java Basico Platzi

Programación Orientada a Objetos

Identificar mis objetos

Anahí Salgado @anncode

•  Pueden ser Físicos o Conceptuales •  Los objetos tienen atributos (características)

•  tamaño •  nombre •  forma •  representan el estado del objeto

•  Los objetos tienen operaciones (las cosas que puede hacer el objeto)

Page 72: Java Basico Platzi

Programación Orientada a Objetos

Anahí Salgado @anncode

•  Los nombres de los objetos por lo general son sustantivos

cuenta, cliente•  Los atributos de los objetos también

•  Las operaciones suelen ser verbos o sustantivo y verbo

mostar, Enviar Pedido

Page 73: Java Basico Platzi

Programación Orientada a Objetos

Anahí Salgado @anncode

•  Vehiculo

atributos: •  matricula •  marca •  modelo •  año

comportamiento: •  arrancar •  frenar •  reversa

Page 74: Java Basico Platzi

Programación Orientada a Objetos

Anahí Salgado @anncode

•  Diseñando un modelo de Clase

•  Una Clase es la forma en como defines tu objeto

•  Las Clases son descriptivas – plantillas

Page 75: Java Basico Platzi

Programación Orientada a Objetos

Anahí Salgado @anncode

•  Clase Vehiculoatributos: •  matricula •  marca •  modelo •  año

comportamiento: •  arrancar •  frenar •  reversa

Page 76: Java Basico Platzi

Byte Short

Integer Long Float

Double Characer Boolean

String

Tipos Datos Objeto

Anahí Salgado @anncode

Page 77: Java Basico Platzi

Variables ≠ Objetos

•  Variables son entidades elementales (muy sencillas)

–  Un número –  Un carácter –  Un valor verdadero

falso

•  Objetos son entidades complejas que pueden estar formadas por la agrupación de muchas variables y métodos.

Anahí Salgado @anncode

Page 78: Java Basico Platzi

CODIGO

Anahí Salgado @anncode

Page 79: Java Basico Platzi

Declaración de métodos

•  Una declaración de un método es un elemento de código en Java que:

–  Consiste de cuatro partes: tipo de datos de regreso, nombre, argumentos y cuerpo entre llaves.

public int suma (int a int b)

Anahí Salgado @anncode

mod. acceso valor regreso nombre argumentos

Page 80: Java Basico Platzi

Declaración de métodos

–  Tiene un valor de regreso explícitamente invocado en su cuerpo usando la palabra reservada return.

–  No regresa ningún valor si es declarado void.

–  No puede declararse dentro de otro método.

public int suma(int a int b){return a+b;

} Anahí Salgado

@anncode

Page 81: Java Basico Platzi

Control de acceso

Anahí Salgado @anncode

Page 82: Java Basico Platzi

Constructor

Anahí Salgado @anncode

•  Un constructor es un conjunto se sentencias que: –  Crea nuevas instancias de una clase. –  Tiene el mismo nombre que la clase que inicializa. –  Usa la palabra reservada new para invocarlo. –  Usa cero o más argumentos contenidos dentro de

los paréntesis que siguen al nombre. –  No regresa un valor.

•  La sintaxis para llamarlo es:

TipoClase variable = new TipoClase(argumentos);

Page 83: Java Basico Platzi

Getters y Setters

•  Un conjunto de métodos se crean por lo general en una clase para leer/escribir específicamente los valores de las variables miembro.

•  Estos se llaman getters - se utilizan para obtener los valores

•  Y setters - se utilizan para cambiar los valores de las variables miembro.

Anahí Salgado @anncode

Page 84: Java Basico Platzi

Getters y Setters

•  Los getters y setters son cruciales en las clases de Java, ya que se utilizan para gestionar el estado de un objeto.

Anahí Salgado @anncode

Page 85: Java Basico Platzi

List

•  Una list es una interfaz del framework de collections de Java que: – Contiene datos en un orden definido y

puede tener elementos duplicados. – Tiene implementaciones generales de

ArrayList y Vector. – Requiere del paquete java.util – Almacena elementos por medio de un

índice entero, iniciando con cero. – Extiende a la interfaz Collection.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 86: Java Basico Platzi

Métodos de la interfaz list

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 87: Java Basico Platzi

Clases que implementan la interfaz List

•  La implementación general de la interfaz List son las clases ArrayList y Vector.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 88: Java Basico Platzi

Clases que implementan la interfaz List

•  La clase ArrayList almacena un arreglo que puede cambiar de tamaño, tiene una capacidad especifica que crece automáticamente.

Ing. Anahí Salgado - @anncode

ArrayList a = new ArrayList(); a.add("Lenguaje"); a.add(3); a.add('a'); a.add(23.5);

Anahí Salgado @anncode

Page 89: Java Basico Platzi

Clases que implementan la interfaz List

•  Un vector es similar a un array, la diferencia estriba en que un vector crece automáticamente cuando alcanza la dimensión inicial máxima.

•  Además, proporciona métodos adicionales para añadir, eliminar elementos, e insertar elementos entre otros dos existentes.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 90: Java Basico Platzi

Clases que implementan la interfaz List

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 91: Java Basico Platzi

¿Cómo obtener datos de un List?

•  La interfaz List provee de múltiples formas para la obtención de datos. El método más común para obtener los datos es get. Este método permite obtener un elemento de una lista por medio de un índice.

•  miLista.get(i);

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 92: Java Basico Platzi

Extendiendo una clase

•  En algunas circunstancias, es necesario utilizar el estado y comportamiento de una clase en conjunto con otras clases.

•  La jerarquía de herencia en java permite tener esta opción al escribir código.

Anahí Salgado @anncode

Page 93: Java Basico Platzi

Herencia

Ing. Anahí Salgado - @anncode

•  Se establece una relación padre-hijo entre dos objetos diferentes.

•  La idea de la herencia es permitir la creación de nuevas clases basadas en clases existentes.

Anahí Salgado @anncode

Page 94: Java Basico Platzi

Herencia

Ing. Anahí Salgado - @anncode

•  La herencia sirve para crear objetos que incorporen propiedades y métodos de otros objetos.

•  Así podremos construir unos objetos a partir de otros sin tener que reescribirlo todo.

Anahí Salgado @anncode

Page 95: Java Basico Platzi

Subclase y Súper Clase •  Una subclase es una clase que: – Hereda de una súper clase. – Es declarada con la palabra reservada extends – Puede acceder miembros de la súper clase con

el mismo nombre con la palabra super y la notación punto.

–  Se debe tener una implementación de los métodos de la superclase y constructores en su cuerpo.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 96: Java Basico Platzi

Sobreescritura de constructores

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 97: Java Basico Platzi

Miembros heredados en la subclase

•  Una subclase hereda todos los miembros de su súper clase que están declarados como public o protected.

•  Los miembros heredados pueden tener múltiples formas dentro de la subclase y superclase, esto se conoce como polimorfismo.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 98: Java Basico Platzi

Sobreescritura de constructores

•  La sobreescritura de constructores es la definición de un constructor en una subclase usando los miembros heredados de la superclase, con argumentos diferentes.

•  Tu sobrescribes constructores simplemente cambiando cualquier argumento que sea necesario.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 99: Java Basico Platzi

Sobreescritura de constructores

•  El constructor de la subclase invoca al constructor de la superclase.

•  Para ello se incluye, obligatoriamente, la palabra clave super como primera línea del constructor de la subclase.

•  La palabra super irá seguida de paréntesis dentro de los cuales pondremos los parámetros que requiera el constructor de la superclase al que queramos invocar.

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 100: Java Basico Platzi

Sobreescritura de constructores

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 101: Java Basico Platzi

Polimorfismo

•  Posibilidad de construir varios métodos con el mismo nombre, pero con relación a la clase a la que pertenece cada uno, con comportamientos diferentes.

Anahí Salgado @anncode

Page 102: Java Basico Platzi

Implementando Interfaces

•  En Java una interface es una clase abstracta pura, es decir una clase donde todos los métodos son abstractos (no se implementa ninguno).

•  Permite al diseñador de clases establecer la forma de una clase (nombres de métodos, listas de argumentos y tipos de retorno, pero no bloques de código).

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 103: Java Basico Platzi

Java I/O

Anahí Salgado @anncode

Page 104: Java Basico Platzi

Streams

•  En Java la información se escribe y lee de diferentes lugares a través del uso de streams (flujos).

•  El paquete java.io contiene muchas clases streams. Dependiendo de que tipo de I/O se necesita, se puede ocupar el stream más adecuado.

Anahí Salgado @anncode

Page 105: Java Basico Platzi

Streams

•  Entre una fuente y un destino fluye una secuencia de datos

Anahí Salgado @anncode

Page 106: Java Basico Platzi

Clasificación de Flujos

Anahí Salgado @anncode

Page 107: Java Basico Platzi

Input Stream

•  Los streams de entrada se usan para leer bytes en un programa. La fuente de los datos puede ser un archivo, un soquet u otra parte del programa.

Anahí Salgado @anncode

Page 108: Java Basico Platzi

Input Stream

•  Java provee otros input stream que extienden la funcionalidad de los anteriores para hacer la lectura más conveniente.

•  Entre las clases se tienen:

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 109: Java Basico Platzi

OutputStreams

•  Los output streams se usan para escribir bytes de datos a un destino.

•  Para crear un nuevo output stream, necesitas especificar un destino para los datos.

Anahí Salgado @anncode

Page 110: Java Basico Platzi

OutputStreams

•  Java a su vez provee otros output stream que extienden la funcionalidad de los anteriores para hacer la escritura más conveniente.

•  Entre las clases se tienen:

Anahí Salgado @anncode

Page 111: Java Basico Platzi

Readers

•  Los readers permiten leer datos en una aplicación, estos datos se leen como caracteres.

Anahí Salgado @anncode

Page 112: Java Basico Platzi

Readers

•  Java provee otros readers que extienden la funcionalidad de los anteriores para hacer la lectura más conveniente.

Anahí Salgado @anncode

Page 113: Java Basico Platzi

Writers •  Los writers se usan para escribir caracteres a

un destino.

•  Java a su vez provee otros writers que extienden la funcionalidad

de los anteriores para hacer la escritura más conveniente.

Anahí Salgado @anncode

Page 114: Java Basico Platzi

Convirtiendo entre bytes y caracteres

•  Los reader y writer trabajan con caracteres

•  Mientras que los stream trabajan con bytes.

•  Algunas veces es necesario ocupar ambos para obtener la funcionalidad requerida.

Anahí Salgado @anncode

Page 115: Java Basico Platzi

Convirtiendo entre bytes y caracteres

•  La clase InputStreamReader permite leer caracteres de un flujo de bytes, por ejemplo:

InputStream in; InputStreamReader rd = new InputStreamReader(in);

•  La clase OutputStreamWriter permite escribir caracteres aun flujo de bytes, por ejemplo:

OutputStream out; OutputStreamWriter wt= new OutputStreamWriter(out);

Anahí Salgado @anncode

Page 116: Java Basico Platzi

Jerarquía de flujos de bytes

Anahí Salgado @anncode

Page 117: Java Basico Platzi

Jerarquía de flujos de caracteres

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 118: Java Basico Platzi

Entrada de caracteres

Anahí Salgado @anncode

Page 119: Java Basico Platzi

Combinación de flujos

Anahí Salgado @anncode

Page 120: Java Basico Platzi

Escribiendo Archivos

•  La habilidad de escribir archivos permite la persistencia de los datos.

•  Algunas razones para escribir archivos son: – Dar al usuario la posibilidad de salvar su

trabajo. – Respaldar datos. – Exportar datos de un sistema a otro.

Anahí Salgado @anncode

Page 121: Java Basico Platzi

Pasos para escribir un archivo

•  Los pasos que usualmente se siguen para escribir un archivo son: 1.  Abrir el archivo. 2.  Escribir algunos datos. 3.  Sí hay más datos, repetir el paso 2. 4.  Cerrar el archivo.

Anahí Salgado @anncode

Page 122: Java Basico Platzi

Pasos para leer un archivo

Leer un archivo usualmente envuelve los siguientes pasos:

1.  Abrir el archivo 2.  Leer algunos datos 3.  Procesar los datos 4.  Si hay más datos, repetir el paso 2. 5.  Cerrar el archivo.

Anahí Salgado @anncode

Page 123: Java Basico Platzi

Java Básico

Anahí Salgado @anncode

public class HolaMundo {public static void main(String[] args) {

System.out.println(“Hola Mundo”);}

}

Page 124: Java Basico Platzi

Hilos Threads

Anahí Salgado @anncode

Page 125: Java Basico Platzi

Hilos

Un Hilo es un trozo de código de nuestro programa que puede ser ejecutado al

mismo tiempo que otro.

Anahí Salgado @anncode

Page 126: Java Basico Platzi

¿Cuál de las dos opciones siguientes elegirías?

•  A) Descargar las imágenes 100 imágenes, haciendo esperar al usuario con una pantalla de “cargando” hasta que se descargan todas. Luego podrá ver el listado con las imágenes.

•  B) Que mientras se descargan las 100 imágenes, el usuario pueda ir viendo y usando las que ya se han descargado.

Anahí Salgado @anncode

Page 127: Java Basico Platzi

Hilos – Threads

•  Threading es la creación de múltiples líneas de flujo de control a través de un programa, o creando múltiples threads.

•  Los creas extendiendo la clase Thread o

implementando la interfaz Runnable.

Anahí Salgado @anncode

Page 128: Java Basico Platzi

Hilos – Threads

Cuando se ejecuta, los threads corren al mismo tiempo pero realizan operaciones separadas.

Anahí Salgado @anncode

Page 129: Java Basico Platzi

Ciclo de vida de un thread

1. Comienza cuando una nueva instancia de un thread se crea, llamando a este estado New o Born.

2. Cuando es iniciado, el thread pasa al estado Runnable o Ready.

Anahí Salgado @anncode

Page 130: Java Basico Platzi

Ciclo de vida de un thread

3. Después, se mueve al estado Running, recibiendo tiempo del procesador de la computadora.

4. Una vez estando en Running, el thread tiene varias opciones para su siguiente estado dependiendo de su propósito, como Dead, Blocked, Deadlock, Waiting o Sleeping.

Anahí Salgado @anncode

Page 131: Java Basico Platzi

Ciclo de vida de un thread

Anahí Salgado @anncode

Page 132: Java Basico Platzi

Métodos de un thread

•  Un objeto Thread se puede entender como el panel de control sobre una tarea o hilo de ejecución.

•  Dispone de métodos para controlar el comportamiento de las tareas

Anahí Salgado @anncode

Page 133: Java Basico Platzi

Métodos de un thread

Anahí Salgado @anncode

Page 134: Java Basico Platzi

Anahí Salgado @anncode

Page 135: Java Basico Platzi

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 136: Java Basico Platzi

Ejecutando threads

•  El método run invocado sobre un objeto thread no hace nada. En su lugar, debes hacer uno de esas dos cosas.

•  Puedes crear una clase que extiende a la clase Thread y entonces crear un nuevo método run para esa clase.

Anahí Salgado @anncode

Page 137: Java Basico Platzi

•  De forma alternativa, puedes crear un objeto Runnable usando la interfaz Runnable.

•  Una vez creado, puedes directamente usar el método run de la interfaz Runnable.

Anahí Salgado @anncode

Ejecutando threads

Page 138: Java Basico Platzi

Prioridad

•  Los threads se ejecutan en el orden de su prioridad.

•  Los threads con alta prioridad pueden

continuamente ganar los recursos del equipo a los thread con prioridad más baja.

•  Esto puede causar que los threads con baja prioridad no se ejecuten.

Anahí Salgado @anncode

Page 139: Java Basico Platzi

Prioridad

Puedes trabajar con esta característica usando sincronización y poniendo

horarios a los threads.

Anahí Salgado @anncode

Page 140: Java Basico Platzi

Prioridad

Puedes usar el método yield para poner en calendarización y usar la sincronización

para definir la prioridad de los threads a través

del método setPriority.

Anahí Salgado @anncode

Page 141: Java Basico Platzi

Prioridad

Ing. Anahí Salgado - @anncode

Anahí Salgado @anncode

Page 142: Java Basico Platzi

Anahí Salgado @anncode

Page 143: Java Basico Platzi

Java Básico

Anahí Salgado @anncode

public class HolaMundo {public static void main(String[] args) {

System.out.println(“Hola Mundo”);}

}

Page 144: Java Basico Platzi

JDBC Java DataBase Connectivity

Anahí Salgado @anncode

Page 145: Java Basico Platzi

JDBC

•  Es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java.

Anahí Salgado @anncode

Page 146: Java Basico Platzi

Paquete java.sql

•  JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para trabajar con bases de datos.

Anahí Salgado @anncode

Page 147: Java Basico Platzi

Diagrama E-R

Anahí Salgado @anncode

Page 148: Java Basico Platzi

Java Básico

Anahí Salgado @anncode

public class HolaMundo {public static void main(String[] args) {

System.out.println(“Hola Mundo”);}

}