Clase2-2023 Java
Clase2-2023 Java
Clase2-2023 Java
• Variables globales.
• Goto.
• Punteros.
• Tipos de datos frágiles.
• Asignación de memoria.
• Conversión de tipos.
• Archivos de cabecera.
• Preprocesador.
CIP
Java in a nutshell
Tool
s
Standard APIs
JVM
@Hendri
kEbbers
5
6
The standard APIs
java.base
@Hendri
kEbbers
The (evil) private APIs
@Hendri
kEbbers
The (evil) private APIs
@Hendri
kEbbers
10
12
Características ..Introducción
• Orientado a Objetos
– encapsulación, herencia, polimorfismo y ligadura dinámica
• Parecido a C++
– elimina las partes confusas ej: punteros
– añade nuevas propiedades ej: garbage collector
• Robusto
– comprobación estática de tipos
– maneja la memoria por el programador
– comprobación de límites de arrays y excepciones.
• Proporciona las librerías y herramientas para programas
distribuidos (protocolos http y ftp, interconexión TCP/IP)
• Multithreads (ejecución concurrente) 13
Como funciona Java?
14
Compiladores JIT (Just In Time)
15
16
Estructura del Virtual Machine
¿Cómo trabaja la JVM ?
19
20
Presentaciones de Java
http://java.sun.com
• JDK (Java Development Kit) o Java SE
– Necesario para crear (desarrollar y compilar) programas
• JRE (Java Runtime Environment)
– Necesario para ejecutar un programa Java
– JDK = JRE + herramientas de desarrollo
21
Plataforma Java SE 18.0
Usando el Apropiado Kit de Desarrollo
• Indica que las clases públicas que contenga está accesible a cualquiera que incluya:
import miBiblioteca.MiClase; o bien
import miBiblioteca.*;
• Las clases que no tienen un nombre de paquete están en el paquete por defecto
(Default Package) consideradas clases amigas (friendly)
• Soporta el concepto de jerarquía de paquetes (estilo directorio)
…
}
Nota:
Es necesario indicar el modificador de acceso
public para que se pueda utilizar la clase “desde el exterior”
35
Clase
36
Estructura de una clase
nombre
atributos
metodos
Tipo de Clase
38
Otra clase a construir
Atributos
Tipos de ambito
public class A{
public int at1;
private int at2;
…
}
Tipos de modificadores de atributos
43
Encapsulamiento
Encapsulamiento(continuacion)
Metodos
Declaración:
i,f - i | i,f != b | +=
i,f -- b == &=
i - b != |=
Tipos válidos de los operandos
i ~ i = Entero (byte, small, int, long) b ?: ^=
f = Punto Flotante (float, double)
b = Lógico (boolean)
Sintaxis en Java
Bifurcaciones – Sentencia de control de saltos (if-else)
// Ejemplo 1
String queHacer = (temperatura > 25) ? "A la playa!!!" :
"Esperando al buen tiempo...";
// Ejemplo 2
double numero = (temperatura > 10) ? (Math.random() * 10) :
0;
// Ejemplo 3
Comida miComida = cansado ? pedirComida("china") :
hacerComida();
Bifurcaciones - Sentencias de control de saltos (switch)
Sintáxis
for( inicialización; exp-booleana; iteración ) {
sentencias;
}
Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia for, se ejecuta por única
vez la sección de inicialización, luego se evalúa la expresión booleana; si el
resultado es verdadero o “true” se ejecutan las sentencias contenidas en el cuerpo
de la instrucción, por último se ejecuta el bloque de iteración y se evalúa
nuevamente la expresión booleana hasta que el resultado sea falso o “false”.
Ejemplo de for
package com.decodigo.ejemplos;
/**
*
* @author decodigo
*/
public class CicloFor {
public static void main(String args[]){
for (int i = 0; i < 10; i++) {
System.out.println("i: " + i);
}
}
}
Otro ejemplo de for
package com.decodigo.ejemplos;
/**
*
* @author decodigo
*/
public class CicloFor4 {
public static void main(String args[]){
int[] numeros = {1,2,3,4,5,6,7,8,9,10};
for (int numero : numeros) {
System.out.println("valor: " + numero);
}
}
}
Bucles - Sentencias repetitivas (while)
Sintáxis
while( expresión-booleana ) {
sentencias;
}
Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia while, se evalúa la
expresión booleana, si el resultado es verdadero o true, se ejecutan las
sentencias contenidas en el cuerpo del bloque while y se evalúa nuevamente
la expresión booleana “mientras” que el resultado no sea falso o false.
Ejemplo de while
private void dos() {
Scanner sc = new Scanner(System.in);
int numero = sc.nextInt();
Sintáxis
do {
sentencias;
}while(expresión-booleana );
Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia do, se ejecuta las
sentencias contenidas en el bloque, luego se evalúa la expresión booleana que
sigue a la instrucción while, si el resultado es verdadero o true, se ejecutan
nuevamente las sentencias contenidas en el cuerpo del bloque “mientras” que el
resultado no sea falso o false.
Ejemplo de do - while
int contador = 0 ;
do {
System.out.println ("Contando... " + (contador+1) );
contador += 1;
} while (contador<10); }
}
Bucles - Sentencias repetitivas (for In)
Sintáxis
for ( declaración var : expresión ){
sentencias;
}
Flujo de Eventos
Continue: hace que la ejecución prosiga con la siguiente iteración saltando las
sentencias que están a continuación.
Break/Continue son instrucciones que hay que utilizar con mucho cuidado, pues,
cambian el flujo normal de un bucle.
Ejemplo de break