Autor: Luis Fernando Apáez Álvarez
-Curso PyM-
Clase 1: Primeros pasos
Fecha: 02 de diciembre del 2022
Instalación y configuración de java en visual estudio code:
Una vez instalado y configurado java (en mi caso utilizo visual studio code), es preciso mencionar que todo dentro de java estará estructurado como clases y objetos.
De tal manera, si queremos imprimir el famoso Hola mundo deberemos de crear un clase, la cual denominaremos HolaMundo. Dentro de dicha clase definiremos el método principal de dicha clase, denominado main , en el cual colocamos el tipo de dato del argumento que recibirá, en este caso el método principal recibirá una cadena de texto (tipo String). Finalmente, dentro de este método colocamos la instrucción System.out.println("Hola Mundo"); la cual nos imprimirá en consola el mensaje "Hola Mundo".
xxxxxxxxxx// Esto es un comentario
public class HolaMundo{ public static void main(String args[]) { System.out.println("Hola Mundo"); }}De lo anterior podemos decir que:
public class.main es un método estático, de ahí que se haya colocado public static, lo cual quiere decir además que el método es público. Luego, dado que el método no devolverá nada, entonces se coloca void. Si por ejemplo el método regresará un número entero, entonces colocaríamos en su lugar public static int.System.out.println("Hola Mundo"); es la instrucción que empleamos para imprimir, la cual es su correspondiente análogo de java a la función print() de python.Dado que ya sabemos lo básico del lenguaje python, lo que haremos inicialmente será "espejear" los conceptos de python con los siguientes de java
xxxxxxxxxx// Variable entera y de cadenapublic class Variables_I { public static void main(String args[]) { // Declaracion de la variable int miVariableEntera = 10; System.out.println(miVariableEntera); // Declaramos una variable de tipo cadena String miVariableCadena = "Hola"; System.out.println(miVariableCadena); // Cambiamos el valor de la variable miVariableCadena = "Adios"; System.out.println(miVariableCadena);
// var --> inferencia del tipo de dato var miVariableEntera2 = 5; System.out.println(miVariableEntera2);
// concatenando System.out.println("miVariableEntera2= " + miVariableEntera2); }}Respecto a las concatenaciones y a las cadenas de texto:
xxxxxxxxxxpublic class Variables_II { public static void main(String args[]) { // Definimos dos variables var usuario = "Juan"; var titulo = "Mat";
// Concatenamos var union = titulo + " " + usuario; System.out.println("union = " + union);
// Salto de linea System.out.println("Nueva linea: \nSegunda linea");
// Tabulador System.out.println("Tabulador: \tlo que sigue "); }}xxxxxxxxxxunion = Mat JuanNueva linea:Segunda lineaTabulador: lo que sigue
Más sobre variables
xxxxxxxxxxpublic class variable_III { public static void main(String args[]) { /*Tipos de datos primitivos enteros: byte, short, int, long */ // Veamos cuantos los valores que puede tomar byte System.out.println("Valor minimo: " + Byte.MIN_VALUE); System.out.println("Valor maximo: " + Byte.MAX_VALUE);
// Variable de tipo char (solo almacena un caracter) char miCaracter = 'a'; System.out.println(miCaracter);
// Caracter unicode char miCaracter2 = '\u0021'; System.out.println(miCaracter2);
// Otra alternativa char miCaracter3 = 33; System.out.println(miCaracter3);
/*Podemos obtener el codigo unicode * de un caracter en especifico */ int unicodeSimbolo = '!'; System.out.println(unicodeSimbolo); }}xxxxxxxxxxValor minimo: -128Valor maximo: 127a!!33
Definimos una nueva clase con un método principal integrado. Para definir una variable en java debemos especificar primero el tipo de dato de la variable, después colocamos el nombre de la variable y finalmente su valor. Cada instrucción en java debe terminar por ;.
xxxxxxxxxx/*Esto es uncomentario multilinea*/public class operadores_I { public static void main(String args[]) { // Definimos dos variables enteras int a=2, b=3; // Definimos una variable que almacene el resultado // de la suma entre las variables anteriores int result = a + b; // o alternativamente podemos definir la siguiente variable var suma = a + b; // imprimimos los resultados en consola System.out.println(suma); System.out.println(result); /* . . . */donde al colocar var al inicio de la variable suma=a+b hacemos que java infiera de manera automática el tipo de dato resultante de efectuar a+b. continuando
xxxxxxxxxx /* . . . El siguiente resultado sera cero pues estamos trabajando con dos enteros, de modo que el resultado debe ser entero tambien */ var division = a / b; System.out.println(division);
// La solucion del problema es crear otra variable var division2 = 2.0 / b; System.out.println(division2); /* . . . */donde ahora como el 2.0 es flotante, por coerción de tipos tendremos que el resultado de 2.0/b será un flotante.
Podemos definir también variables booleanas, además de utilizar operadores booleanos.
xxxxxxxxxx /* . . . Operador de autoincremento */ a += 1; System.out.println(a); // Operadores unarios: // Negacion: ! var c = true; // debera tener asociado el valor booleano // de false var d = !c; System.out.println(d); /* . . . */Recordamos que en python el operador de autoincremento era el mismo que en java, esto es, si queremos realizar un autoincremento de uno a una variable, en python escribíamos:
xxxxxxxxxxx = 0# ahora x valdra unox += 1Por otro lado, en java tenemos dos operadores que no conocíamos hasta ahora: el operador de preincremento y el operador de posincremento.
xxxxxxxxxx /* . . . Preincremento */ var x = 2; var y = ++x; System.out.println(x + "," + y);
// Pos incremento var n = 5; var m = n++; System.out.println(n + "," + m); }}donde el operador de posincremento incrementa el valor de la variable después de ser utilizado y el operador de preincremento incrementa el valor de la variable antes de ser utilizado.
Para el caso en que hemos escrito
xxxxxxxxxx // Preincremento var x = 2; var y = ++x; System.out.println(x + " , " + y);xxxxxxxxxx3 , 3
el valor inicial de x es de 2, luego, dado que el operador de preincremento incrementa la variable antes de ser utilizada y como y está "utilizando" la variable, entonces el valor de y será de 3, pero además de que en el instante var y = ++x el valor de ++x es de 3, el incremento hecho se ve reflejado en la propia variable x, de donde el valor final de x será de 3 también.
De tal manera, podemos decir que ++x no actúa de manera aislada únicamente en la asignación de la variable y, más bien, actúa en el incremento de todas las variables que involucren a la x.
Por otro lado
xxxxxxxxxx // Pos incremento var n = 5; var m = n++; System.out.println(n + " , " + m);xxxxxxxxxx6 , 5
el valor inicial de n es de 5 y el valor de m será también de 5. Lo que ocurre es que primero se hizo la asignación de var m = n (donde n vale 5), y después de dicha asignación se ha incrementado el valor de la n, esto es, el valor final de la n es de 6.
xxxxxxxxxxpublic class operadores_II { public static void main(String args[]) { // Operaciones relacionales: // Operador de igualdad == var b = 4; var c = 5; // |false| var d = b == c; System.out.println(d);
// Distinto != // |true| var e = b != c; System.out.println(e);
// Comparar el contenido de cadenas var saludo = "Hola"; var despedida = "adios"; var f = saludo.equals(despedida); System.out.println(f);
var g = saludo.equals(saludo); System.out.println(g);
// And: && (&) // Or: || (|)
// Operador ternario var resultado = (3>2) ? "Éxito" : "Sentencia falsa"; System.out.println(resultado); }}xxxxxxxxxxfalsetruefalsetrueÉxito
Tal vez lo nuevo del código anterior es el operador ternario. Considerando (3>2) ? "Éxito" : "Sentencia falsa"
tenemos que inicialmente hemos colocado la condición, si dicha condición es verdadera entonces se arrojará la cadena "Éxito", caso contrario se arrojará la cadena "Sentencia falsa".
Finalizamos con variables booleanas y con el condicional if
xxxxxxxxxxpublic class Variable_IV { public static void main(String args[]) { // Variables booleanas boolean varBooleana = true; System.out.println(varBooleana);
// condicional if if (varBooleana){ System.out.println("La variable es verdadera"); } else{ System.out.println("La variable es falsa"); }
// Utilizaremos de otra forma las variables booleanas var edad = 25; var esAdulto = edad >= 18; System.out.println(esAdulto);
// O alternativamente if (edad >= 18){ System.out.println("Eres mayor de edad"); } else{ System.out.println("Eres menor de edad"); } }}xxxxxxxxxxtrueLa variable es verdaderatrueEres mayor de edad
y donde vemos que la estructura básica del condicional if dentro de java es de la forma
xxxxxxxxxx// condicional ifif (<condicion a validar>){ <instruccion que se ejecuta en caso de que la condicion sea verdadera>}else{ <instruccion que se ejecuta en caso de que la condicion sea falsa>}