Clase 01.
Sintaxis y
Variables
Variables
Una variable es un contenedor (un recipiente) de
datos que guarda los valores de los datos durante
la ejecución del programa.
¿Cómo se usan las variables?
Las variables siempre tienen que tener un tipo y un nombre
Fuente: Variables Java y Tipo de Datos | Guru99
La asignación de valores a las variables tiene muchas formas, a continuación se
detallan las más usadas:
Asignar el valor después del signo =
● x = 33
● esFeriado = false
Asignar el valor de una variable a otra
● y= x
Usar una expresión cómo combinación de dos
● x = y + 100
Ejemplos de declaración con asignación de variables primitivas
Convención de nombres
Las variables necesitan un nombre, ¿se pueden usar todas las palabras
para nombrar una variable?
Debemos seguir las siguientes reglas para nombrar variables:
● Empezar con una letra, underscore ( _ ) o signo de dolar($)
● No se puede empezar con números
● Después del primer carácter está permitido el uso de números (Ej: byte
a1234;)
● No se pueden usar palabras reservadas de Java
Listado de palabras claves en Java
Fuente: Palabras Reservadas| TechVidVan
¿Por qué usar una convención?
● Se usa como standard de mercado.
● El respetar la convención de nombres a la hora de definir los nombres de
las variables hace que los programas sean más entendibles haciendo que
sean más fáciles de leer.
● El uso de esta convención brinda información acerca de la función que va
a cumplir dicha variable.
Ej: Si se necesita una variable para contar los alumnos del curso ¿que opción es
más entendible?
int x = 100 o int cantidadAlumnos = 100
Componentes
¿Dónde se usa la convención? La convención aplica a distintos tipos de
componentes del lenguaje:
● Package
● Classes
● Interfaces
● Métodos
● Variables
● Constantes
PACKAGE
Se escribe siempre en minúscula usando ASCII.
El prefijo debe ser algún nombre del nivel superior del dominio, en la actualidad
se usa com, edu, gov, gob, net, org, etc.
Los siguientes componentes se asignan de acuerdo a la convención de cada
organización.
Ejemplos de paquetes posibles para coderhouse:
edu.coderhouse.utils
edu.coderhouse.controller
edu.coderhouse.service
CLASSES E INTERFACES
● Los nombres deberían ser sustantivos, con la primer letra de cada palabra
que forman el nombre en mayúscula.
● Tienen que ser simples y descriptivos
● No usar acrónimos y abreviaturas.
MÉTODOS
● Los nombres deberían ser verbos, escritos en formato camel case.
● Tienen que ser simples y descriptivos
● No usar acrónimos y abreviaturas.
VARIABLES
● Los nombres deberían ser escritos en formato camel case.
● Deben tener nombres cortos y representativos de la función que cumplen.
● No usar underscore ( _ ) o signo dolar ( $ ), a pesar de estar permitido
(recordar que es una convención no una restricción del lenguaje)
● Para variables temporales de tipo entero (int) se recomienda
i, j, k, m, n
● Para caracteres se usa c, d , e
CONSTANTES
Las constantes se deberían escribir en mayúscula y usar el underscore ( _ )
cómo separador.
Tipos
Java es un lenguaje fuertemente tipado.
¿Qué significa esto?
El compilador de Java se encarga de verificar que a una variable que fue definida
para almacenar un tipo de datos no se le esté asignando un tipo que no
corresponda.
TIPOS
Por ejemplo, si se declara una variable primitiva (primitive) de tipo entero (int) no
puede recibir un valor de tipo boolean, double, etc.
La misma regla aplica para las variables definidas de tipo objeto, en una variable
tipo Cuenta Corriente no se puede guardar una referencia (Non-Primitive) a una
Casa o a un Elefante
TIPOS
Fuente: Tipos de datos | Tutorial Cup
TIPO DE DATO
PRIMITIVO
NO- PRIMITIVO
¡PARA PENSAR!
¿Para qué usa la JVM los distintos tipos de variable?
CONTESTA EN EL CHAT DE ZOOM
Para chequear que los valores asignados sean los que corresponden al tipo de
variable declarado. Recordar que Java es un lenguaje fuertemente tipado
☕
BREAK
¡5/10 MINUTOS Y VOLVEMOS!
Obligatoria siempre. A la hora del Break, entre 5 y 10 minutos. Considerar ubicar
este espacio en un momento adecuado de la clase. Al volver, mostrar los
resultados de la pregunta del anterior slide y generar un breve intercambio.
Los tipos de las variables le permiten a la JVM saber qué valores puede
almacenar.
Cada tipo tiene un valor fijo de bits y de aquí se desprenden los valores que se
pueden asignar.
TIPOS
Fuente: Tipos de datos primitivos| Facing Issues on IT
Explicar que los tipos de datos no primitivos se explican en la siguiente clase del
curso
¡VAMOS A PRACTICAR LO VISTO!
Profe: Es momento de compartir pantalla y llevar a la práctica lo que vienen
viendo.
Una variable de tipo byte ocupa 8 bits por la tanto puede almacenar 256 (2^8)
números que van desde el -128 al 127.
public static void main(String[] args) {
byte minimo = -129;
System.out.println("El valor de la variable es: " + minimo);
}
Probemos asignar un valor negativo más grande del permitido
ALGUNOS EJEMPLOS
Entonces, ¿qué sucede cuando asignamos un valor negativo más alto que el
permitido?
El programa nos devolverá el siguiente mensaje
public static void main(String[] args) {
byte minimo = -128;
System.out.println("El valor de la variable es: " + minimo);
}
El valor de la variable es: -128
Pero si, en cambio asignamos el valor negativo máximo posible y el programa
corre satisfactoriamente
public static void main(String[] args) {
byte maximo = 128;
System.out.println("El valor de la variable es: " + maximo);
}
Ahora probemos asignar un valor positivo más grande del permitido
Entonces, podemos ver como si asignamos un valor positivo más alto, nos dará el
siguiente mensaje:
public static void main(String[] args) {
byte maximo = 127;
System.out.println("El valor de la variable es: " + maximo);
El valor de la variable es: 127
Por tanto, si asignamos el valor positivo máximo posible , el programa correrá
satisfactoriamente.
¡PARA PENSAR!
¿Este código funciona?
CONTESTA EN EL CHAT DE ZOOM
public static void main(String[] args) {
int x = 24;
byte b = x;
System.out.println("El valor de la variable es: " + b);
}
Explicar que si bien 24 es un valor dentro del rango aceptado por el tipo byte
esta asignación no es posible porque las variables x e y son de distinto tipo
Operadores básicos
Operadores Aritméticos
Los operadores aritméticos se usan para realizar operaciones
aritméticas/matemáticas entre operandos.
¿Qué son?
Suma de enteros
Suma de String
public static void main(String[] args) {
int x = 1;
int y = 1;
int z = x + y;
System.out.println("El valor de la suma es: " + z);
}
El valor de la suma es: 2
public static void main(String[] args) {
String x = "abc_";
String y = "def";
String z = x + y;
System.out.println("El valor de la suma es: " + z);
}
El valor de la suma es: abc_def
SUMA (+)
Realiza la suma de dos operandos
Realiza la sustracción de dos operandos
Sustracción de enteros
public static void main(String[] args) {
int x = 1;
int y = 1;
int z = x - y;
System.out.println("El valor de la sustracción es: " + z);
}
El valor de la sustracción es: 0
SUSTRACCIÓN (+)
Realiza la multiplicación de dos operandos
Multiplicación de enteros
public static void main(String[] args) {
int x = 123;
int y = 145;
int z = x * y;
System.out.println("El valor de la multiplication es: " + z);
}
El valor de la multiplication es: 17835
MULTIPLICACIÓN (x)
Divide el primer operando por el segundo
Division de enteros
public static void main(String[] args) {
int x = 1200;
int y = 100;
int z = x / y;
System.out.println("El valor de la división es: " + z);
}
El valor de la división es: 12
DIVISIÓN (/)
Devuelve el resto cuando el primer operando es dividido
por el segundo.
Módulo
public static void main(String[] args) {
int x = 145;
int y = 4;
int z = x % y;
System.out.println("El valor del módulo es: " + z);
}
El valor del módulo es: 1
MÓDULO (%)
Incrementa en 1 el valor del entero.
Tiene dos formas: preincremento ++x o postincremento (x++)
public static void main(String[] args) {
int x = 0;
x++;
System.out.println("El valor de la variable es: " + x);
++x;
System.out.println("El valor de la variable es: " + x);
}
El valor de la variable es: 1
El valor de la variable es: 2
INCREMENTO (++)
Decrementa en 1 el valor del entero.
Tiene dos formas: predecremento --x o postdecremento(x--)
public static void main(String[] args) {
int x = 2;
x--;
System.out.println("El valor de la variable es: " + x);
--x;
System.out.println("El valor de la variable es: " + x);
}
El valor de la variable es: 1
El valor de la variable es: 0
MÓDULO (%)
Operadores Relacionales
Los operadores relacionales determinan la relación entre dos operandos.
Evalúan la relación entre dos operadores y devuelve true si la relación existe,
caso contrario devuelve false
¿Qué son?
Operador == : verifica si dos operandos son iguales o no. Si cumple la condición
devuelve true si no false
Operador != : verifica si dos operandos son distintos o no. Si cumple la condición
devuelve true si no false
Operador > : verifica si el primer operando es mayor que el segundo operando. Si
cumple la condición devuelve true si no false
Operadores Relacionales
public static void main(String[] args) {
int a = 10, b = 4;
// Operadores relacionales
// Mayor que
if (a > b)
System.out.println("a es mayor que b");
else System.out.println("a es menor o igual que b");
// Mayor o igual
if (a >= b)
System.out.println("a es mayor o igual que b");
else System.out.println("a es menor que b");
// Menor que
if (a < b)
System.out.println("a es menor que b");
else System.out.println("a es mayor o igual que b");
Operador < : verifica si el primer operando es menor que el segundo operando. Si
cumple la condición devuelve true si no false
Operador >= : verifica si el primer operando es mayor o igual que el segundo
operando. Si cumple la condición devuelve true si no false
Operador <= : verifica si el primer operando es menor o igual que el segundo
operando. Si cumple la condición devuelve true si no false
Operadores Relacionales
// Menor o igual que
if (a <= b)
System.out.println("a es menor o igual que b");
else System.out.println("a es mayor que b");
// Igual que
if (a == b)
System.out.println("a es igual que b");
else System.out.println("a y b no son iguales");
// No igual que
if (a != b)
System.out.println("a y b no son iguales");
else System.out.println("a es igual que b\"");
}
a es mayor que b
a es mayor o igual que b
a es mayor o igual que b
a es mayor que b
a y b no son iguales
a y b no son iguales
Buenas prácticas
Evitar nombres sin sentido
No usar variable cómo abc, temp, data.
De esta manera no se revela la intención
Dar nombres significativos, cómo complemento al punto anterior.
Debe brindar información sobre lo que hace.
Ej: getFechaPago() es mejor que gfp()
Es preferible un nombre corto sobre uno largo
Ej: getFechaPago() es mejor que devolverFechaPago()
Evitar nombres similares.
No deberían existir dos variables que se llamen empleado y empleados.
En caso de necesitar representar una lista se puede usar listaEmpleados
Preferible usar nombre descriptivo sobre nombre corto.
En el punto 3 recomendamos un nombre corto pero si no es descriptivo de la
intención entonces usar uno largo
Ej: getAApr() es corto pero no indica intención, es mejor getAlumnosAprobados()
Seguir la convención de nombres de java.
Se explicó en esta clase anteriormente
Usar nomenclatura consistente, evitar sinónimos
No usar nombres cómo destroy(), kill() o finish() si realizan tareas parecidas
Seguir la convención clásica de programación
Para las variables usadas en iteradores se debería usar i, j, k
En este punto se acepta no respetar el punto 1
Evitar el uso de caracteres no ASCII
Los caracteres no ASCII pueden no ser soportados por todas las plataformas
Hacer buen uso de verbos comunes
En nombres de variables y métodos booleanos se recomienda usar isAlive(),
hasNext(), canExecute()
Es fácil de leer y denota la intención
EJEMPLO EN VIVO
1-Uso de variables simples con valores primitivos int, long y double. Mostrar los
valores en consola. Explicar que es System.out.println
2-Mostrar la guía de buenas prácticas. Crear un método main y escribir una
variable con un nombre complejo y porque se debe empezar con minúscula y
cada palabra nueva van con mayúscula.
3-Crear un método main donde se muestran los operadores aritméticos sobre
variables de tipo int y double. Mostrar un ejemplo con el operador + y una o más
variables de tipo String.
4-Operador % y operador / mostrar en una metodo main ejemplos prácticos de
cuándo utilizarlo.
Profe: Deberá crear un método main por cada punto
¡HANDS ON!
ACTIVIDAD EN CLASE
¡Llevemos lo visto hasta el momento a la acción!
Les proponemos que puedan realizar la siguiente actividad.
Tiempo estimado 20 minutos
IMPORTANTE: Si los/as estudiantes no cuentan con los recursos para realizar la
actividad, el/la profe deberá compartir pantalla y realizar el ejercicio en vivo.
Prestamo
Pago de préstamo al banco con intereses
Tiempo estimado: 20 minutos
Usar para challenges genéricos.
Calcular el monto total del prestamo
Generar un programa que retorne por consola el monto total que se pagará al
banco.
El monto total es Capital Solicitado + intereses a pagar.
La fórmula para calcular "cuánto interés se pagará" por un préstamo pedido al
banco es:
Interés a pagar = Capital solicitado x Interés x periodo en meses.
El objetivo es que los alumnos realicen su primer programa Java, entender el uso
de variables, aprender a ver problemas de compilación y el uso de la consola.
El desafío tiene un tiempo estimado de 20 minutos
Usar para las subsiguientes slides de challenges genéricos.
Préstamo
Formato: Se debe entregar un archivo en formato .java.
Sugerencia: Se recomienda comentar el código para explicar qué hace cada
parte del código. Cómo en la diapositiva de Operadores Relacionales
>> Consigna: Generar un programa que retorne por consola el monto total que se
pagará al banco.
El monto total es Capital Solicitado + intereses a pagar.
La fórmula para calcular "cuánto interés se pagará" por un préstamo pedido al
banco es:
Interés a pagar = Capital solicitado x Interés x periodo en meses.
>>Objetivos de la actividad:
Se espera que los cálculos se desarrollen en métodos separados
Una buena elección de tipo de variable para el monto
Código bien documentado
>>Tiempo estimado: 20 minutos
>>Ejemplo:
Desarrollo de un desafío genérico
ACTIVIDAD EN CLASE
Puesta en común del ejercicio
Manejo de tipo de datos float
Separación parte entera de decimal
1
Manejo número flotante
Formato: Se debe entregar un archivo en formato .java.
El formato del nombre debe ser “NumeroFlotante+Apellido.java”
Sugerencia: Se recomienda comentar el código para explicar qué hace cada
parte del código. Cómo en la diapositiva de Operadores Relacionales
>> Consigna: Crear un método main que permita mostrar la parte entera y
separado la parte decimal de un tipo de dato float
>>Aspectos a incluir en el entregable:
Entregar la clase que ejecute sin errores y deje el resultado en consola
>>Ejemplo:
Desarrollo de un desafío entregable
¿PREGUNTAS?
¡MUCHAS GRACIAS!
Resumen de lo visto en clase hoy:
Variables: definición y uso
Sintaxis: convención de nombres
Tipos de variables
Buenas prácticas
¿QUIERES SABER MÁS? TE DEJAMOS MATERIAL AMPLIADO DE LA CLASE
Google Java Style Guide | google.github.io
Disponible en nuestro repositorio.
OPINA Y VALORA ESTA CLASE
#DEMOCRATIZANDOLAEDUCACIÓN