Curso de Java
Estructura del LenguajeCurso de Java
Estructura del Lenguaje
Contenido de la clase
- Variables- Convención de código Java- Tipos primitivos- Compilación y ejecución de un programa Java
- Estructuras de control
Declaración de variables
Declaración<tipo de variable> <nombre de variable>;
Declaración y asignación <tipo de variable> <nombre de variable> = <valor>;
// Variable de tipo intint numeroEntero;
//Múltiples declaraciones en una sola líneaint i, j, l;
Identificadores
Un identificador es un nombre que nos permite dirigirnos a las variables, funciones y otros elementos utilizados a la hora de escribir el código de un programa.
Reglas- Los nombres deben empezar con una letra, con _ o $.
- Los siguientes caracteres pueden ser números, letras, _ o $.
Ejemploscontador //válido
_siguiente //válido
1erContador //??
INT //??
Práctica
Definir las variables para un programa que reciba como parámetro la cantidad de horas para terminar un trabajo y calcule el equivalente en días de trabajo.
Parámetro
Variables
Convenciones
Los identificadores asociados a variables se suelen poner en minúsculas
int Contador; // Malint contador; // Bien
Cuando el identificador está formado por varias palabras, la primera palabra va en minúsculas y el resto de las palabras se una inicia con una letra mayúscula.
int contadorelementos; // malint contadorElementos; // bien
Convenciones
Número por línea
Se recomienda una declaración por línea ya que alienta a comentar.
int tamaño; // tamaño de la tablaint cantidad; // cantidad de alumnos
LugarDeclarar las variables al inicio del bloque
void myMethod() { int int1; // inicio del bloque del método if (condicion) { int int2; // inicio del bloque if ... }}
Convención - Importancia
-El 80% del costo del ciclo de vida del software va a mantenimiento.
-Difícilmente un software es mantenido por su autor original.
- La convención de código mejora la lectura del programa
Definición de constante
final <tipo> identificador = <valor>;
Convenciones
Los identificadores asociados a constantes se suelen poner en mayusculas
final int COTIZACION = 4600;
Si el identificador esta formado por varias palabras, las distintas palabras se separan por un guion bajo.
final COTIZACION_DOLAR = 4600;
Tipos primitivos
Tipo numéricoNúmeros enteros: byte, short, int, logNúmeros en coma flotante: float, double
Tipo carácter char
Tipo booleano boolean
Manejo de caracteres a través de una clase.
Números enteros
Tipo de dato Espacio en memoria
Valor mínimo Valor máximo
byte 8 bits -128 127
short 16 bits -32768 32767
int 32 bits -2147483648 2147483647
long 64 bits -9223372036854775808 9223372036854775807
Números enteros
Tipo de dato Espacio en memoria
Valor mínimo Valor máximo
byte 8 bits -128 127
short 16 bits -32768 32767
int 32 bits -2147483648 2147483647
long 64 bits -9223372036854775808 9223372036854775807
¿long o int?47483648
Literales enteros
• Los literales enteros son de tipo int por defecto.
• Un literal entero es de tipo long si va acompañado del sufijo l o L.
• 2334567665L es de tipo long.
Desbordamiento de número enteros
short numero = 32767;
numero + 1
Desbordamiento de número enteros
Tipo Operación Resultado
byte 127 + 1 -128
short 32767+1 -32768
int 2147483647+1 -2147483648
Números en coma flotante
Tipo de dato Espacio en memoria
float 32 bits
double 64 bits
Literales reales
• Cadenas de dígitos con un punto decimal234.32 .001
• En notación científica (mantisa.10exponente)123e45 123E+45 1E-6
• Por defecto, los literales reales representan valores de tipo double.
• Para representar un valor de tipo float, añadir el sufijo f o F.
123.87F
Caracteres
Literales de tipo carácter
Valores entre comillas simples‘a’ ‘1’ ‘*’
Tipo de dato Espacio en memoria
Codificación
char 16 bits UNICODE
Secuencias de escape para representar caracteres especiales
Secuencia de escape Descripción
\t Tabulador
\n Nueva línea
\r Retorno de carro
\b Retroceso
\’ Comillas simples
\” Comillas dobles
\\ Barra invertida
Secuencias de escape para representar caracteres especiales
Secuencia de escape Descripción
\t Tabulador
\n Nueva línea
\r Retorno de carro
\b Retroceso
\’ Comillas simples
\” Comillas dobles
\\ Barra invertida
System.out.println("Bienvenidos alumnos al "primer" día de clase");
Secuencias de escape para representar caracteres especiales
Secuencia de escape Descripción
\t Tabulador
\n Nueva línea
\r Retorno de carro
\b Retroceso
\’ Comillas simples
\” Comillas dobles
\\ Barra invertida
System.out.println("Bienvenidos alumnos al \"primer\" día de clase");
Tipo boolean
• Los literales son true y false
Tipo de dato Espacio en memoria
Valores
boolean 1 bit Verdadero o falso
Conversión entre tipos primitivos
Narrowing: conversión de un tipo primitivo mayor a un tipo primitivo menor. La conversión tiene que ser explícita.
double d = 1.5;int i = (int) d; // el valor de d queda truncado a 1
Widening: conversión de un tipo primitivo menor a un tipo primitivo mayor. La conversión puede ser implícita.
short s = 15;float f = s;
Conversión entre tipos primitivos
byte
double
short
char
long floatint
Widening
Narrowing
Promoción aritmética
Se dá cuando se realiza una operación aritmética entre dos tipos primitivos numéricos diferentes. El compilador realiza una operación widening.
int intDato = 5;double doubleDato = 3;
doubleDato = intDato * doubleDato;
intDato = intDato * doubleDato;
Promoción aritmética
Se dá cuando se realiza una operación aritmética entre dos tipos primitivos numéricos diferentes. El compilador realiza una operación widening.
int intDato = 5;double doubleDato = 3;
doubleDato = intDato * doubleDato;
intDato = intDato * doubleDato;
intDato = (int) (intDato * doubleDato);
Practica conversión y promoción
Se dá cuando se realiza una operación aritmética entre dos tipos
Operadores aritméticos
- Si los operandos son enteros se realizan operaciones enteras.Ejemplo
Operador Operación
+ Suma
- Resta o cambio de signo
* Multiplicación
/ División
% Módulo (resto de la división)
Operación Tipo Resultado
8/3 int 2
C
String
String é uma classe que manipula cadeias de caracteresA classe String possui métodos para essas manipulaçõesTrabalha com Pool de Strings para economizar memória
Outros métodos úteis da classe String:
Funciones de la clase Character
isDigit() isLetter() isLowerCase() isUpperCase() toLowerCase() toUpperCase()
Mostrar los tipos primitivos y las clases de los tipos primitivos para no aburrir tanto esta parte. Se pueden ir realizando prácticas con las funciones aprendidas.
C
Comentarios
Os comentários em Java podem ser por linha ou em bloco:Por linha:// isto é um comentário e inicia com duas barras.Em bloco:/*Comentário em bloco aceita múltiplas linhasNão utilize comentários aninhados*
C
La clase String
-String no es un tipo primitivo, sino ua clase
La clase String
- String no es un tipo primitivo sino una clase predefinida.- Una cadena (String) es una secuencia de caracteres.- Las cadenas de caracteres son inmutables. Es decir, no se
pueden modificar los caracteres individuales de la cadena.
C
Concatenación de cadena de caracteres- Para concatenar cadenas de caracteres se utiliza el operador +
Operación Resultado
“Total = “ + 100 + 50 Total = 10050
“Total = “ + (100 + 50) Total = 150
C
Lista de operadores
Incremento e Decremento: ++ e --int a = 0;int b = a++; // incrementado depois de atribuirint c = ++a; // incrementado antes de atribuirb = a--; // decrementado depois de atribuirc = --a; // decrementado antes de atribuir
C
Operadores aritméticos
Multiplicação e Divisão: * e /int um = 3 / 2; // divisão de inteiros gera um inteirofloat umEmeio = (float) 3 / 2; // ocorre promoção aritmética para floatdouble xyz = umEmeio * um; // ocorre promoção aritmética para floatMódulo: %int resto = 7 % 2; // resto = 1Adição e Subtração: + e -long l = 1000 + 4000;double d = 1.0 – 0.01;Concatenação:long var = 12345;String str = “O valor de var é “ + var;Na concatenação de Strings, as variáveis ou literais são promovidos a String antes:String str = “O valor de var é “ + Long.toString( var );
C
Operadores de comparación
Comparação ordinal: >, >=, < e <=Compara tipos primitivos numéricos e o tipo char.boolean b = ( 10 < 3 );boolean w = (x <= y);if( x >= y ) { }Operador instanceofCompara o tipo da classe de uma referência de um objeto.String str = “Uma String”;if( str instanceof String ) { } // trueif( srt instanceof Object ) { } // trueComparação de Igualdade: == e !=Comparam tipos primitivos, valores literais e referências de objetos.if( abc == 10 ) { }boolean b = ( xyz != 50 );if( refObj1 == refObj2 ) { }
Operadores de comparación
Los operadores de comparaci[on son v[alidos para n[umeros y caracteres
Operador Significado
== Igual
!= Distinto
< Menor
> Mayor
<= Menor o igual
>= Mayor o igual
C
Operadores l[ogicos
Los operadores && || son de corto circuito.
Operador Nombre Significado
! NOT Negaci[on l[ogica
&& AND
|| OR
^ XOR
Operadores de asignación
Operadores l[ogicos
Los operadores && || son de corto circuito.
Operador Nombre Significado
! NOT Negaci[on l[ogica
&& AND
|| OR
^ XOR
C
Ejercicios - Dada una medida de tiempo expresada en horas, minutos y
segundos con valores arbitarios, elabore un programa que transforme diche medida en una expresión correcta. Por ejemplo, dada la medida 3h 118m 195s, el programa deberá obtener como resultado 5h 1m 15.
Operador condicional ?
Permite bifurcar el flujo del programa a partir del valor de una variable boolean. Permite incluir una condición dentro de una expresión.
variableBoolean ? Expre1 : expre2;
Ejemplo
int cotizacion = 5000;int precio = 5; // 5 U$SInt moneda = 2; // U$S
int total = (moneda == 1) ? precio : cotizacion * precio;
Mostrar sintaxis y ejemplo por separado en la parte de condicionales.
Contenido de la clase
- Elementos de la tecnología Java
- Compilación y ejecución de un programa Java
- Estructuras de control
Estructuras condicionales
if / else
operador ?,
switch
If() / else
- Sintaxis if
if (condicion) sentencia;
if (condicion) {bloque;
}
- Sintaxis if / else
if (condicion) sentencia1;
elsesentencia2;
if (condicion) {bloque1;
} else {
bloque 2;}
If() / else
- Ejemplopublic class ClausulaIf {public static void main( String[] args ) {int idade = 20;if( idade <= 12 ) {System.out.println( "Criança" );}else if( idade <= 19 ) {System.out.println( "Adolescente" );}else if( idade <= 60 ) {System.out.println( "Adulto" );}else {System.out.println( "Idoso" );}}}
switch()
Permite seleccionar entre varias alternativas posibles que representan números enteros.
- Sintaxisswitch (expresion) {
case valorExp1:bloque 1;break;
case valorExp2:bloque2;break;
…default
// bloque por defecto;}
switch()
- Ejemplo
int nota;String comentario;switch (expresion) {
case 1:case 2:
comentario = “No pasa”;break;
case 3:case 4:
comentario = “Pasa”;break;
case 5:comentario = “Pasa con buen rendimiento”; break;
defaultcomentario = “Nota no reconocida”;
}
Estructuras iterativas
- While, for, do..while
El bucle while
- Sintaxiswhile (condicion)
sentencia;
while (condicion) {bloque
}
El bucle while
- Sintaxisfor (expr1; expre2; expre3) {
bloque;}
Equivalencia entre for y while
for (expr1; expre2; expre3) {bloque
}
expr1;while (expre2) {
bloque;expre3;
}
El bucle do while
Sintaxis
dosentencia;
while ( condicion );
dobloque;
while ( condicion );
Ejercicios de bucles
Diseñe un programa para jugar a adivinar un número entre 0 y 100. El programa irá dando pistas al jugador indicándole si el número introducido por el jugador es menor o mayor que el número que tiene que adivinar. El juego termina cuando el jugador adivina el número o decide terminar el juego introduciendo un número negativo.
Array
- Declaración- Creación- Uso- Copia de arrays se debe explicar en la clase de
referencia.
C
Ejercicios
- Programar un algoritmo que realice una división por restas sucesivas.
- Programar un algoritmo recursivo que muestre el numero menor de un vector.
- Generar 5,10,15,20,25,30,...- class JavaSeries1
{ public static void main (String args []) {int n, c = 1, serie = 5;System.out.print ("Cantidad d terminos: ");n = Leer.datoInt ();while (c <= n){ System.out.print ("," + serie); serie += 5; c++;} }}
C
Ejercicios- Obtener subcadena de cadenas.- Crear una clase pública de nombre EjercicioString2 que contenga
sólo al método main y que muestre por consola el número de veces que aparece la letra "a" en la siguiente String "Mañana es sabado sabadete y voy a irme a tomar unas copillas por los barrios bajos de Logroño"
C
Ejercicios- Probar conversión de tipos y promoción aritmética.
C
Ejercicios- Escribir un programa Java para evaluar cada una de las
siguientes fórmulas. Declarar las variables con los tipos más adecuados.
C
Ejercicios- Escribir un programa Java para evaluar cada una de las
siguientes fórmulas. Declarar las variables con los tipos más adecuados.