0% encontró este documento útil (0 votos)
25 vistas95 páginas

Módulo 1 Unidad 1

Programacion JAVA 1

Cargado por

luis
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas95 páginas

Módulo 1 Unidad 1

Programacion JAVA 1

Cargado por

luis
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 95

Curso:

Java Básico
(24 horas)

Jaime Gómez Marín


[email protected]

Copyright © Setiembre de 2021 por TECSUP


1
Introducción al curso
• El primer módulo explica los fundamentos del lenguaje
Java, detallando las técnicas asociadas a la programación
orientada a objetos. Todos los temas giran entorno a una
colección de ejemplos que se han desarrollado y que
pretenden mostrar las mejores prácticas en la
programación con Java.

2
Objetivos del curso
• Utilizar la sintaxis de la versión actual del lenguaje Java
• Utilizar los diversos paquetes que ofrece Java.
• Aplicar los conceptos de la Programación Orientada a
Objetos (POO) con Java.
• Desarrollar programas que manejen excepciones
• Escribir colecciones de objetos de acuerdo a las
características que ofrece cada tipo.
• Escribir aplicaciones concurrentes con hilos.

3
Unidades del curso
1. Fundamentos del lenguaje Java
2. Programación Orientada a Objetos
3. Paquetes útiles, interfaces y excepciones
4. Colecciones e Hilos

4
Unidad 01
Fundamentos del lenguaje Java

Copyright © Setiembre de 2021 por TECSUP


5
Introducción
• En la presente unidad, se detalla los fundamentos de la
tecnología Java, reconociendo las 3 plataformas que la
conforman.
• Además, se revisa la sintaxis y fundamentos del lenguaje
de Java.
Objetivos
• Reconocer los componentes de la tecnología Java.
• Identificar el alcance de las plataformas de Java.
• Escribir programas usando la sintaxis del lenguaje Java.
Temas
Esta unidad está compuesta por los siguientes temas:

Tema 1: La tecnología Java


Tema 2: El lenguaje de programación Java
Tema 3: Matrices
Tema 1:
Plataforma Java

Copyright © Setiembre de 2021 por TECSUP


9
Plataforma Java
La plataforma de Java está dividida en:

• Java Standard Edition (Java SE)


• Java Enterprise Edition (Java EE)
• Java Micro Edition (Java ME)
Plataforma Java SE

Imagen tomada de http://www.oracle.com/technetwork/java/javase/tech/index.html


Plataforma
JEE

Imagen tomada de www.oracle.com


Conceptos básicos
• JRE = Java Runtime Environment (Entorno de Ejecución
de Java)
• Contiene las clases para ejecutar aplicaciones Java

• JVM = Java Virtual Machine (Máquina Virtual de Java)


• Está incluida en el JRE.
• Permite la ejecución de aplicaciones Java.
Conceptos básicos
• JDK
• El JDK incluye al JRE más las herramientas de desarrollo como los
compiladores y debuggers que son necesarios para desarrollar
aplicaciones.
• Código Fuente
• Instrucciones especiales almacenadas en un archivo.
• Escritas en un lenguaje específico (Java,C++,Visual Basic)4
• Bytecode
• Código Binario de las aplicaciones Java.
• Es interpretado por el JVM.
Máquina Virtual
¿Qué es una Aplicación Java?
• Programa Standalone
• Código fuente almacenado en un archivo de texto con
extensión .java
• Compilado (javac) para obtener clases java (con
extensión .class)
• Las Clases son cargadas utilizando el interprete de java
(java)
El lenguaje de programación

• Simple (Automatic Garbage Collector)


• Lenguaje Orientado a Objetos
• Distribuido
• Robusto
• Arquitectura neutral
• Seguro
• Portable
• Medio interpretado y medio compilado
• Multi-hilo
• Dinámico
Roadmap Java SE
(Actualizado al 22 de marzo del 2022)

https://www.oracle.com/java/technologies/java-se-support-roadmap.html
License de JDK

https://www.oracle.com/java/technologies/javase/jdk-faqs.html

http://www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf
Open JDK

https://jdk.java.net
Open JDK versión 11

https://jdk.java.net/java-se-ri/11
https://www.eclipse.org/ide/
Tema 2:
El lenguaje de programación Java

Copyright © Setiembre de 2021 por TECSUP


Espacios en blanco

• Espacios, Tabs y nuevas líneas son ignorados por el


compilador.
• El excesivo uso de espacios en blanco no produce un
mayor bytecode.
• Puede ser utilizado para formatear el código, para que
sea mas fácil de leerlo.
Estilos

• Son formatos o plantillas definidas para la codificación.


• Es irrelevante para el compilador.
• Hace que el código sea mas fácil de leer.
• Sangrías, espacios, nuevas líneas pueden ser usados
para formatear el código.
• Comentarios pueden ser utilizados para agregar notas
en el código. Son requeridas para javadoc.
Comentarios en Java

• Ignorados por el compilador.


• Pueden ser de una sola línea:
• int cont=1 // entero contador
• Pueden ser de varias líneas:
/* comentario para depurar
if (x==1) {
cont=5;
}
*/
Comentarios para documentación

• Ignorados por el compilador.


• Pueden tener etiquetas HTML.
• Pueden extraerse utilizando la herramienta javadoc.
• javadoc produce páginas HTML con la referencia de
nuestra aplicación.
• Puede usarse para la definición de la clase, interfase,
campos, métodos , constructores.
Identificadores
• Deben empezar con un caracter unicode , subrayado ( _ ) o
símbolo de dolar ($).
• Los caracteres subsecuentes pueden ser cualquier
caracter unicode, números, subrayado o símbolo dolar.
• Case-Sensitive (Sensible a mayúsculas y minúsculas)
• Los identificadores o nombres no deben coincidir con las
palabras reservadas.
Válidos Inválidos
miVar 1era
primernombre primer-nombre
edad1 #edad
i x@num
Palabras reservadas
Separadores

• () encerrar argumentos
• {} bloque de código,iniciar arrelo
• [] definir y accesar arreglos
• ; fin de sentencia
• , separar argumentos o variables
• . uso en paquetes,acceso a objetos
• : uso en label o etiquetas
Secuencias de Escape

Tipo Ejemplo
\t Tabulación
\n Nueva línea
\f Alimentación de Impresora
\r Retorno de carrete (nueva línea en
impresora)
\” Comillas dobles
\’ Comilla simple
\\ División inversa (backslash)
¿Qué es una variable?

• Ubicación temporal para almacenar información.


• Tiene un tipo de dato.
• Tiene un valor, el cual puede cambiar
• Constantes, no pueden cambiar de valor.
¿Qué es un tipo de dato?

• Un tipo de dato define:


• El tamaño de la variable.
• Rango de valores que la variable puede almacenar.
• Operadores pueden ser usados en las variables.
• Java es un lenguaje “tipificado” (todas las
variables tienen un tipo).
• Los tipos de datos son independientes de la
plataforma.
Tipos de Datos Enteros

• Permite almacenar números enteros:

Tipo de Dato Rango de Valores


byte -128 a 127
short -32768 a 32767
int -2147483648 a 2147483647
long -9223372036854775808 a
9223372036854775807
char \u0000 a \uffff (0 a 65535)
Tipos de Datos de Punto Flotante

• Permite almacenar números enteros y


decimales:

Tipo de Dato Rango de Valores


float -3.4029292347E+38 a
3.4029292347E+38
double -1.79769313486231570E+308 a
1.79769313486231570E+308
Tipo de Dato Booleano

• Permite almacenar verdadero o falso

Tipo de Dato Rango de Valores


boolean true o false
Declarando variables

• Declarar significa crear.


• Puede realizarse en “cualquier parte” del código.
• Ejemplos:
• int i, edad;
• long numero;
• float salario;
• double deuda;
Convenciones para las variables
• Las variable deberán usar mayúsculas y minúsculas, con la
primera letra del nombre en minúsculas, y con la primera
letra de cada palabra interna en mayúsculas
(lowerCamelCase).
• No se permiten caracteres especiales.
• El nombre ha de ser lo suficientemente descriptivo, no
importando la longitud del mismo.***
• Importa más la relación entre la regla mnemónica y la
longitud del nombre.
• Ejemplo:
Correctos: diaCalculo, fechaIncoporacion
Incorrectos: dC, DCal, fI, FI¿
Convenciones para las variables
• Se evitará en la medida de lo posible la utilización de
caracteres especiales, así como nombre sin ningún tipo de
significado funcional.
• Las excepciones son las variables utilizadas en bucles for,
para esos casos se permite utilizar i, j, k, l y siempre en ese
orden de anidamiento.
• El primer bucle siempre será el que tenga la variable i
como iterador.
Inicializando variables

• Inicializar significa darle un valor inicial a la variable en la


declaración de la variable.
• Ejemplo:
• int i=0, edad=25;
• long numero=543985734L;
• float salario=3500.50f;
• double deuda=5000.36;
Accesando variables
• Cada variable debe tener un valor antes de ser accesada,
caso contrario se producirá un error.
• El nombre de la variable es usado para accesar al valor de
la variable.

public class Ejemplo {


public static void main(String[] args){
double total=54.336;
System.out.println(“El total es ”+total);

}
}
Constantes

• El valor de una variable final es constante.


• Una vez que una variable final ha sido inicializada, su
valor no puede ser modificado.
• Un error se producirá si el compilador detecta algún
intento de modificación de esta variable.
• final float pi = 3.1415f;
Conversión Automática

• Existen dos tipos de conversión en Java (up-


casting y down-casting)
double
float
long
int
short
byte
int edad=9;
float nueva_edad = edad;
Conversión Manual

• Operador “Cast”: (tipo_de_dato)


• Ejemplo:

final double pi = 3.1415;


float piTmp = (float)pi;
Operadores

• Tipos
• Unitario
• Binario
• Aritmético
• Comparación
• Asignación
• Condicional
• Manipulación de Bits
• Booleano
Operadores Aritméticos

Operador Ejemplo
+ (Unitario) +costo; //cambio de signo
+ (Binario) a + b;
- (Unitario) -costo; //cambio de signo
- (Binario) ingresos – egresos;
++ (Unario) productos++;
-- (Unario) --almacen;
Operadores Aritméticos

Operador Ejemplo
* a * b;
/ a / b;
% a % 2;
Operadores de Comparación

Operador Ejemplo
< ganancia < 0;
<= ganancia <= 0;
> ventas > 50;
>= ventas >= 50;
== ganancia == 0;
!= ganancia != 0;
instanceof nombre instanceof String;
/* nombre es un objeto de tipo
String? */
Operadores de Asignación

Operador Ejemplo
= suma = a+b;
+= suma += b;
-= suma -= b;
*= b *= a;
/= suma /= b;
%= suma %= b;
Operador Condicional

Operador Ejemplo
?: +costo; //cambio de signo

• Evalua un valor booleano en una expresión para


determinar cual de dos expresiones ejecutar.
• Ejemplo:
int a=10;
a = (a<20) ? a : 20;
Manipulación de Bits

Operador Ejemplo
~ NOT
& AND
| OR
^ XOR

5 | 14 se resuelve
8421 5 es 0101
14 es 1110
resultado es 1111
Operadores Booleanos

Operador Ejemplo
! !true;
&& true && false;
|| true || false;
Precedencia de Operadores

() , [] , . , ++(sufijo) , --(sufijo)
+(unitario) , -(unitario) , ++(pre) , --(pre) , ~ , !
(tipo) , new
*,/,%
+,-
< , <= , > , >= , instanceof
== , !=
Precedencia de Operadores

&
^
|
&&
||
?:
= , += , -= , *= , /= , %=
Condicionales

Copyright © Setiembre de 2021 por TECSUP


IF
• La instrucción if / else permite al programa ejecutar
selectivamente otras instrucciones, basado en alguna
condición.

if (expression){
statement(s)
}
Bloques para Código
Propósito:
• Requeridas cuando múltiples sentencias son controladas
por algún control de flujo como IF.

if (expression) {
statement(s)
}
IF-ELSE
• Else significa “en caso contrario”
• Es usada siguiendo a un control IF

if (expression) {
statement(s)
} else {
statement(s)
}
IF-ELSE-IF
• Permite definir varias condiciones para controlar las
sentencias.

if (dia == hoy) {
sentencias(s)
} else if (dia == ayer) {
sentencias(s)
} else {
sentencias(s)
}
SWITCH
• Permite control el flujo de una aplicación por medio de un
patrón.
• El patrón puede ser un String, byte ,short ,int y char.

switch(patron) {
case 1: sentencias(s); break;
case 2: sentencias(s); break;
default : sentencias(s);
}
Ambito de las Variables
• Cuando usamos bloques para código debemos tener
cuidado en el uso de variables.

int cont=4;
if (cont<5) {
double total = cont * 10;
}
System.out.println(“Contador : ”+cont);
System.out.println(“Total : ”+total);
Ambito de las Variables
• Una variable puede ser usada en su propio bloque para
código como en bloques internos.
int cont=4;
double total = 0;
if (cont<5) {
total = cont * 10;
}
System.out.println(“Contador : ”+cont);
System.out.println(“Total : ”+total);
Fujos Repetidos

Copyright © Setiembre de 2021 por TECSUP


WHILE
• While significa “mientras”.
• Permite ejecutar una o varias sentencia(s) de forma
repetitiva:

while (contador < 10) {


sentencias(s)
}
DO-WHILE
• Permite ejecutar una o varias sentencia(s) de forma
repetitiva.
• Se diferencia de while porque se ejecuta por lo menos una
vez.
do {
sentencias(s)
} while (contador < 10);
BREAK
• Permite romper o salir de un bloque de control.

while (contador < 10) {


sentencias(s)
if(contador==3) break;
}
BREAK con Etiquetas
• Permite romper el bloque de control y redireccionarse hacia
una etiqueta.

punto:
while (contador < 10) {
sentencias(s)
if(contador==3) break punto;
}
CONTINUE
• Usado en bloques repetitivos
• Permite continuar con el siguiente ciclo repetitivo.

while (contador < 10) {


sentencias(s)
if(contador==3) continue;
}
CONTINUE con Etiquetas
punto:
while (contador < 10) {
sentencias(s)
if(contador==3) continue punto;
}
FOR
• Permite ejecutar bloques repetitivos.
• Se diferencia de while por tener valores fijos:
for (inicialización; expresión; incremento) {
sentencia(s)
}

• Ejemplo:
for (int i=0; i<10; i++) {
sentencia(s)
}
FOR-EACH
• Permite ejecutar bloques repetitivos sobre una colección de
objetos.
• Sintaxis:
for (tipo_variable variable; colección) {
sentencia(s)
}

Ejemplo:
int numeros[] = {10, 20, 30, 40};
int suma = 0;
for (int nro : numeros) {
sum += nro;
}
Tema 3: Arreglos

Copyright © Setiembre de 2021 por TECSUP


Arreglos

• Los arreglos son variables que pueden almacenar


muchos datos del mismo tipo bajo el mismo nombre.
Nos permiten acceder a cualquiera de los datos
almacenados en ellas si les indicamos en que posición
se encuentra.
Declaración de arreglos
• Sintáxis:
tipo nombre_arreglo [ ];
tipo [ ] nombre_arreglo;

• Ejemplo:
int números [] ;
int[] números;
Inicialización de arreglos

• Para inicializar un arreglo tenemos dos posibles formas:


– Asignar la memoria dependiendo del número de
elementos que vaya a contener.
– Indicar directamente los datos que queremos que
contenga.
Asignación de memoria

• Sintaxis:
tipo [ ] nombre_arreglo = new tipo[nro_elementos]
tipo nombre_arreglo [ ] = new tipo[nro_elementos]

• Ejemplo:
int[] numeros = new int[10];
int numeros [] = new int[10];
Asignación de datos

• Sintaxis:
nombre_arreglo[posición] = valor
El primer elemento del arreglo tiene como posición el valor 0 y
el último elemento tiene como posición el valor de tamaño del
arreglo menos 1
• Ejemplo:
int[] numeros = new int[10];
numeros[4] = 23;
Acceso a elementos

• Para acceder a un elemento de un arreglo se utilizará el


nombre del arreglo y entre corchetes [ ] el número de la
posición del elemento al que queremos acceder.

nombre_arreglo[posicion]

• Ejemplo:
int[] numeros = new int[10];
numeros[4] = 23;
int nroLoteria = números[4];
Declaración y asignación

• Sintaxis:
tipo [ ] nombre_arreglo = {elemento1, elemento2, .....,
elementoN}
tipo nombre_arreglo [ ] = {elemento1, elemento2, .....,
elementoN}

• Ejemplo:
int[] numeros = {1,2,3,4,5,6,7,8,9,10};
int numeros[] = {1,2,3,4,5,6,7,8,9,10};
Propiedad length

• Esta propiedad nos devuelve en todo momento el


número de elementos que contiene nuestro arreglo.
int[] ejemploArray = new int[300];
int nroElementos = ejemploArray.length;
System.out.println (" Mi array tiene "+ nroElementos + "
elementos");
Recorrer un arreglo, forma 1

• La propiedad length de los arreglos devuelve el número


de elementos, no la última posición. Si tenemos un
array de 5 elementos, 5 nos devolverá length, pero las
posiciones irán del 0 al 4.
• Por eso si recorremos el array con un for, siempre en la
condición hemos de excluir el último valor: for (int i=0; i<
x.length; i++). Siempre inicializamos el índice a 0 y se
repite mientras sea menor que el tamaño (menor
estricto).
for (int i=0; i<numeros.length;i++){
System.out.println(numeros[i]);
}
Recorrer un arreglo, forma 2

int numeros[] = {1,2,3,4,5,6,7,8,9,10};

for (int nro; numeros){


System.out.println(nro);
}
Propiedad length

• La propiedad length de las matrices devuelve el número


de elementos, no la última posición. Si tenemos un
array de 5 elementos, 5 nos devolverá length, pero las
posiciones irán del 0 al 4.
• Por eso si recorremos el array con un for, siempre en la
condición hemos de excluir el último valor: for (int i=0; i<
x.length; i++). Siempre inicializamos el índice a 0 y se
repite mientras sea menor que el tamaño (menor
estricto).
for (int i=0; i<numeros.length;i++){
System.out.println(numeros[i]);
}
Arreglos Multidimensionales

• Los arreglos son variables que pueden almacenar otros


arreglos del mismo tipo bajo el mismo nombre. Nos
permiten acceder a cualquiera de los datos
almacenados en ellas si les indicamos en que posición
se encuentra.
Declaración de arreglos multidimensionales
• Sintáxis:
tipo nombre_arreglo [ ][ ];
tipo [ ][ ] nombre_arreglo;

• Ejemplo:
int números [ ] [ ] ;
int [ ] [ ] números;
Inicialización de arreglos
multidimensionales
• Para inicializar un arreglo tenemos dos posibles formas:
– Asignar la memoria dependiendo del número de
elementos que vaya a contener.
– Indicar directamente los datos que queremos que
contenga.
Asignación de memoria

• Sintaxis:
tipo [ ] [ ] nombre_arreglo
= new tipo[nro_filas_1] [nro_columnas_2]
tipo nombre_arreglo [ ] [ ]
= new tipo[nro_filas_1] [nro_columnas_2]

• Ejemplo:
int[][] numeros = new int[10][5];
int numeros [][] = new int[10][5];
Asignación de datos

• Sintaxis:
nombre_arreglo[pos_fila_1] [pos_columna_2] = valor
• Ejemplo:
int[][] numeros = new int[10][5];
numeros[4][2] = 23;
Acceso a elementos

• Para acceder a un elemento de un arreglo se utilizará el


nombre del arreglo y entre corchetes [ ] el número de la
posición del elemento al que queremos acceder.

nombre_arreglo[pos_fila_1] [pos_columna_2]

• Ejemplo:
int[][] numeros = new int[10][5];
numeros[4][3] = 23;
int nroLoteria = números[4][3];
Declaración y asignación

• Sintaxis:
tipo [ ] [ ] nombre_arreglo = { <fila_1>, <fila2>, .....,
<fila_N>}
tipo nombre_arreglo [ ] [ ] = { <fila_1>, <fila2>, .....,
<fila_N>}
• Ejemplo:
int[][] numeros = { {1,2,3},
{4,5,6},
{7,8,9}};
int numeros[][] = {{1,2,3},{4,5,6},{7,8,9}};
Propiedad length

• Esta propiedad nos devuelve en todo momento el


número de filas que contiene nuestro arreglo
multidimensional.
int[][] ejemploArray = new int[300][200];
int nroFilas = ejemploArray.length;
System.out.println(" Mi array tiene "+ nroFilas + " filas");
Recorrer un arreglo, forma 1

int [][] notasCursosDeAlumno


= { {14, 16, 18, 6},
{10, 8, 12, 15},
{16, 18, 14, 20}};

for (int i = 0; i < notasCursosDeAlumno.length; i++) {


for (int j = 0; i < notasCursosDeAlumno[i].length; j++) {
System.out.println(notasCursosDeAlumno[i][j]);
}
}
}
Recorrer un arreglo, forma 2

int [][] notasCursosDeAlumno


= { {14, 16, 18, 6},
{10, 8, 12, 15},
{16, 18, 14, 20}};

for (int[] notasCurso : notasCursosDeAlumno) {


for (int nota : notasCurso) {
System.out.println(nota);
}
}
Propiedad length

• La propiedad length de las matrices devuelve el número


de elementos, no la última posición. Si tenemos un
array de 5 elementos, 5 nos devolverá length, pero las
posiciones irán del 0 al 4.
• Por eso si recorremos el array con un for, siempre en la
condición hemos de excluir el último valor: for (int i=0; i<
x.length; i++). Siempre inicializamos el índice a 0 y se
repite mientras sea menor que el tamaño (menor
estricto).
for (int i=0; i<numeros.length;i++){
System.out.println(numeros[i]);
}
Conclusiones
• En la presente sesión, se detalló la tecnología Java con
sus 3 plataformas.
• Además, se identificó la sintaxis básica del lenguaje de
programación Java, revisando las estructuras de control,
repetitivas, entre otros.
• Finalmente, se cierra la unidad con el tema de matrices.

También podría gustarte