11 Introjava1
11 Introjava1
Avanzada
Andrea Rueda
https://spectrum.ieee.org/top-programming-languages-2021
Java vs C++
●
Compilación C++
Java vs C++
●
Compilación Java
http://java-intellectual.blogspot.com/2011/07/bytecode-and-its-importance.html
Java
Sistema Operativo
(Windows, Linux, Mac)
Java Runtime
Environment (JRE)
Java Virtual
Librerías
Machine (JVM)
Java
JVM, JRE y JDK (Java Development Kit)
https://techythought.wordpress.com/2014/04/21/jvm-jre-jdk-whats-the-relation/
Java
●
JDK (Oracle)
- Licenciado.
- Uso comercial, desarrollo o personal.
- https://www.oracle.com/java/technologies/downloads/
●
OpenJDK
- Licencia GPL.
- Prácticamente igual al JDK comercial.
- https://jdk.java.net/17/
Java
●
IDEs (Integrated Development Environment):
entornos de desarrollo para Java
- Eclipse
https://www.eclipse.org/downloads/
- Netbeans
https://netbeans.apache.org/download/index.html
- IntelliJ
https://www.jetbrains.com/es-es/idea/
Java: variables
●
Variable: símbolo que hace referencia a un
espacio en memoria donde se puede almacenar
un dato.
– Nombre.
– Tipo.
– Estado o valor.
●
Variables deben ser declaradas para ser
usadas.
●
Tipo de dato: conjunto al que el dato pertenece.
byte, short,
entero int, long
real float, double
caracter char
booleano bool
Java: tipos de datos
Nombre Descripción Tamaño Rango
●
Cada elemento se accede por un índice
numérico (entero).
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
Java: arreglos
●
Declarar un arreglo:
int[] anArray;
byte[] anArrayOfBytes;
short[] anArrayOfShorts;
long[] anArrayOfLongs;
float[] anArrayOfFloats;
double[] anArrayOfDoubles;
boolean[] anArrayOfBooleans;
char[] anArrayOfChars;
String[] anArrayOfStrings;
●
Hasta ahí, no tiene ningún tamaño definido!
Java: arreglos
●
Crear: asignar el tamaño requerido.
anArray = new int[10];
●
Inicializar: poner valores en cada posición.
anArray[0] = 100;
anArray[1] = 200;
anArray[2] = 300;
●
Crear e inicializar en una sola instrucción:
int[] anArray = { 100, 200, 300, 400,
500, 600, 700, 800, 900, 1000};
Java: arreglos
●
Arreglos multidimensionales (2 o más), se vé
como arreglo de arreglos.
●
Cada arreglo puede tener un tamaño diferente.
String[][] names = {
{"Mr. ", "Mrs. ", "Ms. "},
{"Smith", "Jones"}
};
●
Acceso con los índices de cada arreglo y dentro
de cada arreglo.
String fullName =
names[0][0] + names[1][0];
Java: arreglos
●
Tamaño del arreglo: propiedad length.
int arrSize = anArray.length;
●
Manipulaciones de arreglos: clase
java.util.Arrays
– Buscar un elemento en un arreglo
– Comparar dos arreglos
– Llenar con un valor específico
– Organizar un arreglo de forma ascendente
– Copiar un arreglo en otro
Java: operadores
Precedencia Tipo Operadores
1 posfijo expr++ expr--
2 unario ++expr --expr +expr -expr ~ !
3 multiplicativo * / %
4 aditivo + -
5 corrimiento << >> >>>
6 relacional < > <= >= instanceof
7 igualdad == !=
8 AND de bits &
9 XOR de bits ^
10 OR de bits |
11 AND lógico &&
12 OR lógico ||
13 ternario ? :
= += -= *= /= %= &= ^= !=
14 asignación <<= >>= >>>==
Java: escritura
●
Comandos de escritura: clase System
System.out.print() → escribe en pantalla.
System.out.println() → escribe en pantalla
y termina con un cambio de línea.
●
Crear un objeto de la clase para luego usar sus
métodos
Scanner keyboard = new Scanner(System.in);
int numberOfPods = keyboard.nextInt();
double d1 = keyboard.nextDouble();
String word1 = keyboard.next();
String line = keyboard.nextLine();
Java: lectura
●
Otra opción: leer todo como cadenas de
caracteres y hacer la conversión respectiva:
String numCompStr = keyboard.nextLine();
int numComp = Integer.parseInt(numCompStr);
String costStr = keyboard.nextLine();
double cost = Double.parseDouble(costStr);
●
Hay que cerrar el objeto al terminar
keyboard.close();
Java vs C++
●
Hola mundo en C++
Archivo main.cpp:
#include <iostream>
int main() {
std::cout << "Hello World!\n";
}
Java vs C++
●
Hola mundo en Java
Archivo Main.java:
class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Java: estructuras de decisión
●
Estructuras de selección o decisión:
if (<cond>) {
<bloque de instrucciones>
}
if (<cond>) {
<bloque de instrucciones 1>
} else {
<bloque de instrucciones 2>
}
Java: estructuras de decisión
●
Estructuras de selección (decisión) anidadas:
if (<cond 1>) {
<bloque de instrucciones 1>
} else {
if (<cond 2>) {
<bloque de instrucciones 2>
} else {
<bloque de instrucciones 3>
}
}
Java: estructuras de decisión
●
Estructura de selección (decisión) múltiple:
switch (<opcion>) {
case <constante 1>:
<bloque de instrucciones 1>
break;
case <constante 2>:
<bloque de instrucciones 2>
break;
default:
<bloque de instrucciones 3>
break;
}
Java: estructuras de repetición
●
Estructuras de iteración o repetición:
while (<cond>) {
<bloque de instrucciones>
}
do {
<bloque de instrucciones>
} while (<cond>);
Java: estructuras de repetición
●
Estructuras de iteración (repetición):
class Main {
...
...
Java
●
Ejercicio 2:
Escribir el código de una función que calcule el
máximo (valor más grande) de dos números
reales.
– Tipo de retorno.
– Cantidad de parámetros.
●
Tipo de dato de cada parámetro.
Java
●
Ejercicio 2:
Escribir el código de una función que calcule el
máximo (valor más grande) de dos números
reales.
– Tipo de retorno → real.
– Cantidad de parámetros → 2 números.
●
Tipo de dato de cada parámetro → reales.
Java
●
Ejercicio 2 (código):
Escribir una función que calcule el máximo de
dos números reales.
https://replit.com/@Andrea_del_Pila/PA-introJava-ejercicio2
Java
●
Ejercicio 3:
Dado un arreglo de enteros (junto con su
tamaño), escribir el código que permita llenar
una matriz cuadrada (fila por fila) con los datos
del arreglo.
Java
●
Ejercicio 3:
Dado un arreglo de enteros (junto con su
tamaño), escribir el código que permita llenar
una matriz cuadrada (fila por fila) con los datos
del arreglo.
– leer tamaño del arreglo y cada uno de los enteros.
– calcular la dimensión de la matriz cuadrada que
puede contener todos los elementos.
– llenar la matriz de izquierda a derecha y de arriba a
abajo con los datos del arreglo.
Java
●
Ejercicio 3 (código):
Dado un arreglo de enteros (junto con su
tamaño), ¿cómo llenar una matriz cuadrada
con los datos del arreglo?
– leer tamaño del arreglo y cada uno de los enteros.
n = keyb.nextInt();
int[] arr;
arr = new int[n];
for (i=0; i<n; i++) {
arr[i] = keyb.nextInt();
}
Java
●
Ejercicio 3 (código):
Dado un arreglo de enteros (junto con su
tamaño), ¿cómo llenar una matriz cuadrada
con los datos del arreglo?
– calcular la dimensión de la matriz cuadrada que
puede contener todos los elementos.
int tam = (int)Math.ceil(Math.sqrt(n));
int[][] mat;
mat = new int[tam][tam];
Java
●
Ejercicio 3 (código):
Dado un arreglo de enteros (junto con su
tamaño), ¿cómo llenar una matriz cuadrada
con los datos del arreglo?
– llenar la matriz de izquierda a derecha y de arriba a
abajo con los datos del arreglo.
int l=0;
for (int i=0; i<tam; i++)
for (int j=0; j<tam; j++) {
mat[i][j] = arr[l];
l = l+1;
} https://replit.com/@Andrea_del_Pila/PA-introJava-ejercicio3