8/17/2019 Lenguajes_1 java
1/62
Lenguajes de programación
Java
8/17/2019 Lenguajes_1 java
2/62
Características del lenguaje Java
Orientado a objetos. La funcionalidad del sistemase organiza en objetos que colaboran entre simediante el envío de mensajes. La funcionalidadcrece fácilmente añadiendo más objetos al sistema.
Compilado. Se generan ficheros con las clasescompiladas, los cuales son interpretados por lamáquina virtual de java (JVM). Siendo ésta la
responsable de la ejecución. Multiplataforma. El mismo código java funciona endistintos sistemas operativos, siempre que tenganinstalada la máquina virtual java (JVM).
8/17/2019 Lenguajes_1 java
3/62
Programa
Secuencia de instrucciones que llevan acabo una tarea.
instrucción1
instrucción2
instrucción3
instrucción4
Tarea
8/17/2019 Lenguajes_1 java
4/62
Tarea sumar dos números
Pedir primer número
Pedir segundo número
Realizar operación
System.out.println("Teclea el primer número");numero1=leer.nextInt();
System.out.println("Teclea el segundo número");
numero2=leer.nextInt();resultado=numero1+numero2;
Programa
8/17/2019 Lenguajes_1 java
5/62
Programa
Variable: almacena información que semodifica durante la ejecución de unprograma.
Constante: almacena información que no semodifica a la largo de la ejecución. Debenser inicializadas.
Sentencias: comandos que pueden serinterpretados por el ordenador. Condicional y
selección, iterativas, asignación.
8/17/2019 Lenguajes_1 java
6/62
Tipos de datos
Enteros. Se usan para representar números enteros con signo
byte 8 bits -128..127
short16 bits -32.768..32.767
int32 bits -2.147.483.648..2.147.483.647
long
64 bits -9.223.372.036.854.775.808..9.223.372.036.854.775.807
8/17/2019 Lenguajes_1 java
7/62
Tipos de datos
Booleanos. valores true y false. Si no son inicializados toman elvalor de false.
Char . Unicode simples de 16 bits, el tipo de datos char es unentero sin signo de 16 bits.
Reales. Se usan para representar números con partes fraccionarias
float 32 bits IEEE 754 3.4e-038..3.4e+038
double 64 bits IEEE 754 1.7e-308..1.7e+308
8/17/2019 Lenguajes_1 java
8/62
Declaración y asignación de variables
Empezar con una letra Contener cualquier número de letras o dígitos Incluir “_” o “$”. Sensible al uso de mayúsculas. No hay limitación de longitud. Variables empiezan por minúscula-> las siguientes van en
mayúscula.
Ejemplos: – miNombre – sueldoBase – anchoVentana_1
– sueldo_2001 – paga_Extra$
8/17/2019 Lenguajes_1 java
9/62
Declaración y asignación de variables
Tipo nombre_variable [= valor];
Ejemplos: – int ciclo; –
long numeroLargo; – float temperatura=0.0f; – double miPi; – boolean reciboPagado;
– char s; – int ciclo=0; – long numeroLargo = 5263; – float temperatura = 36.6f;
– double miPi = 314.16e-2 ; – boolean reciboPagado = false;
8/17/2019 Lenguajes_1 java
10/62
Declaración y asignación deconstantes
Modificadores tipo nombre_constante=valor;
Letra mayúscula.
Ejemplos: – final static int CERO =0; – final static int PRIMERO =1;
– final static double PI =3.14159; – final char POSITIVO= ‘s’;
8/17/2019 Lenguajes_1 java
11/62
abstact boolean break byte byvalue
case cast catch char class
const continue default do double
else extends false final finally
float for future generic goto
if implements import inner instanceof
int interface long native new null operator outer package private
protected public rest return short
static super switch syncroniced this
throw throws transient true try
var void volatile while
8/17/2019 Lenguajes_1 java
12/62
/*** @author (Fundamentos de Programación)
* @version (1.0)*/import java.util.Scanner;public class Suma{
public static void main(String[] args){
Scanner leer = new Scanner(System.in);int numero1,numero2,resultado;System.out.println("Programa de suma");System.out.println("Teclea el primer número");numero1=leer.nextInt();System.out.println("Teclea el segundo número");numero2=leer.nextInt();
resultado=numero1+numero2;System.out.println("El resultado de"+numero1+"+"+numero2+"es"+ resultado );leer.close();
}}
8/17/2019 Lenguajes_1 java
13/62
Operadores
Caracteres que indican al compilador que se
desea realizar una operación.
– Unico operando ->operadores unarios.
– Antes del operando ->operadores prefijo
– Después -> operadores sufijo.
Operadores aritméticos
Operadores relacionales
Operadores lógicos
Operadores a nivel de bit
8/17/2019 Lenguajes_1 java
14/62
Operadores aritméticos
Operador Significado Operador Significado
+ Suma += suma y asignación
- resta (también el menosunario)
-= resta y asignación
* Multiplicación *= Multiplicación y asignación
/ División /= división y asignación
% Módulo %= módulo y asignación
++ Incremento -- Decremento
8/17/2019 Lenguajes_1 java
15/62
Operadores relacionales
Operador Significado
= = igual a
!= distinto de
> mayor que
< menor que
>= mayor o igual que
8/17/2019 Lenguajes_1 java
16/62
Operadores lógicos
Operador Significado Operador Significado
& AND lógico &= Asignación AND
| OR lógico |= Asignación OR
^XOR lógico (OR
exclusivo)^= Asignación XOR
|| OR inmediato = = igual a
&& AND inmediato != distinto de
! NOT unariológico ?: if-then-elseternario
8/17/2019 Lenguajes_1 java
17/62
La más alta
( ) [ ] .
++ -- ~ !
* / %
+ -
>> >>> >= <
8/17/2019 Lenguajes_1 java
18/62
Precedencia
Z=p * r % q + w / x - y
A* ( b + c ) + c * ( d + e )
8/17/2019 Lenguajes_1 java
19/62
Clase
Todo en Java forma parte de una clase. Las instrucciones de los programas Java se colocan
dentro del bloque de una clase. Los métodos sedefinen dentro
import puede colocarse al principio de un fichero,fuera del bloque de la clase. El compilador
reemplazará esa sentencia con el contenido delfichero que se indique, que consistirá, como es desuponer, en más clases.
8/17/2019 Lenguajes_1 java
20/62
Clase
/**** Clase Hola.*/class Hola //{
/*** Método main*/public static void main(String[] args){
System.out.println("Hola mundo");}
}
8/17/2019 Lenguajes_1 java
21/62
Método main
Principal o punto de entrada del programa Es el que primero se ejecuta.
Cada clase puede tener su propio método. En una aplicación con varias clases lo
habitual es que sólo una de ellas cuente conmétodo main.
public static void main(String[] args)
8/17/2019 Lenguajes_1 java
22/62
Separadores
() - paréntesis. – Listas de parámetros en la definición y llamada a métodos. – definir precedencia en expresiones. – expresiones para control de flujo. – rodear las conversiones de tipo.
{} - llaves. – valores de matrices. – bloque de código, para clases, métodos y ámbitos locales.
[] - corchetes. – tipos matriz.
– referenciar valores de matriz. ; - punto y coma. Separa sentencias
, - coma. – identificadores consecutivos en una declaración de variables. – Encadenar sentencias dentro de una sentencia for .
. - punto. – Separar nombres de paquete de subpaquetes y clases. – Separar una variable o método de una variable de referencia.
8/17/2019 Lenguajes_1 java
23/62
Clase Scanner
Leer datos de la entrada estándar. Paquete util.
– import java.util.Scanner
Crear un objeto – Scanner leer = new Scanner(System.in);
nextByte Byte
nextDouble Double
nextFloat Float
nextInt Entero
nextBoolean Boléanos
nextLine Siguiente línea
toString Representación string
close Cierra el Scanner
8/17/2019 Lenguajes_1 java
24/62
Control del flujo
La ejecución avanza y se ramifica en funciónde los cambios de estado de los datos.
– selección, – condicional, – iteración y
– llamadas a métodos.
8/17/2019 Lenguajes_1 java
25/62
Sentencia condicional if/else
En función de una expresión se decide la siguiente sentencia aejecutar.
La expresión produce un resultado boolean (verdadero o falso).
Sintaxis
if(expresión condicional ) {sentencias;
} o
if(expresión condicional ) {sentencias;
}else {
sentencias;}
8/17/2019 Lenguajes_1 java
26/62
Sentencia condicional if/else
if (nota>5)System.out.println("Aprobado");
elseSystem.out.println("Suspenso");
Las sentencias pueden ser simples o compuestas,
pueden ser a su vez otras expresiones condicionales.
Cuando es igual se pone doble igual en el condicional
Ejemplo de expresiones condicionales(ab).(b= =’s’)
8/17/2019 Lenguajes_1 java
27/62
import java.util.Scanner;public class Condicional{
public static void main(String[] args){
Scanner leer = new Scanner(System.in);byte respuesta;System.out.print("Qué opción desea (1-2)==> ");
respuesta=leer.nextByte();if (respuesta==1)System.out.println("Ha escogido la opción 1");
else if (respuesta==2)
System.out.println("Ha escogido la opción 2");elseSystem.out.println("Ha escogido un número no válido");leer.close();
}}
8/17/2019 Lenguajes_1 java
28/62
Operadores lógicos
Las expresiones pueden unirse medianteoperadores lógicos.
A B OR(||) AND(&&) XOR(^) NOT(!)
falso falso falso falso falso verdadero
verdadero falso verdadero falso verdadero Falso
falso verdadero verdadero falso verdadero verdadero
verdadero verdadero verdadero verdadero falso falso
8/17/2019 Lenguajes_1 java
29/62
Operadores lógicos
if (nota>5 && asistencia=='s')System.out.println("No es necesario hacer examen");
If (nota>5 || asistencia==‘s’)System.out.println(“Al menos un apartado es correcto");
If (!(nota>5) && asistencia=='s')System.out.println(“Con nota suspensa no se puede aprobar ");
8/17/2019 Lenguajes_1 java
30/62
import java.util.Scanner;public class Condicional{public static void main(String[] args){
Scanner leer = new Scanner(System.in);byte respuesta;System.out.print("Qué opción desea (1-2)==> ");respuesta=leer.nextByte();
if (respuesta==1)System.out.println("Ha escogido la opción 1");else if (respuesta==2)System.out.println("Ha escogido la opción 2");
elseSystem.out.println("Ha escogido un número no válido");leer.close();
}
}
import java.util.Scanner;
8/17/2019 Lenguajes_1 java
31/62
public class AND{
public static void main(String[] args)
{
Scanner leer = new Scanner(System.in);float temperatura;float humedad;System.out.println("¿Cuál es la humedad ?");humedad=leer.nextFloat();System.out.println("¿Cuál es la temperatura ?");temperatura=leer.nextFloat();
if (humedad>=60.0 && temperatura>=32.0)System.out.println("Se recomienda encender el aire acondidicionado a potencia alta");
else if (humedad>=50 && temperatura>=27.5)System.out.println("Se recomienda encender el aire acondidicionado a potencia media");else if (temperatura>=23.5)
System.out.println("Puede encender el aire acondidicionado a potencia baja");elseSystem.out.println("No es necesario encender nada");
leer.close();}
}
8/17/2019 Lenguajes_1 java
32/62
Ejercicio
Determinar si un año es bisiesto o no. Un añoes bisiesto si cumple con las siguientescondiciones: – Es múltiplo de 4, pero no es múltiplo de 100. – Múltiplo de 400.
El programa debe: – Pedir un año al usuario – Imprimir por pantalla si el año es bisiesto
8/17/2019 Lenguajes_1 java
33/62
Ejercicio
Calcular la ecuación cuadrática con unaincógnita (ax2+ bx + c=0) recibiendo comoparámetros de entrada las constantes: a, b yc.
• =–b+sqrt(b2-4ac)/2ac.• Si b2-4ac
8/17/2019 Lenguajes_1 java
34/62
switch
Forma limpia de dirigir la ejecución a partes diferentes delcódigo en base al valor de una variable o expresión
Sintaxis
switch(expresión) {case expresión1:sentencias;break;
case expresión2:sentencias;break;
default:sentencias;
}La expresión evalúa valores enteros o que puedan transformarse a enteros
import java.util.Scanner;
8/17/2019 Lenguajes_1 java
35/62
p j ;public class SWITCH{
public static void main(String[] args){
Scanner leer = new Scanner(System.in);byte dia;System.out.print("Indique un día de la semana (1-7)==> ");dia=leer.nextByte();switch(dia){
case 1:System.out.println("Lunes"); break;case 2:System.out.println("Martes"); break;case 3:System.out.println("Miércoles"); break;case 4:System.out.println("Jueves"); break;case 5:System.out.println("Viernes"); break;case 6:System.out.println("Sábado"); break;case 7:System.out.println("Domingo"); break;default: System.out.println("La semana tiene 7 días");
}leer.close();
}}
8/17/2019 Lenguajes_1 java
36/62
break
Salirse de un bloque de código. Se retoma la ejecución pasado el final del
bloque actual. Se utiliza comúnmente en los switch
Se puede utilizar para forzar la salida de losciclos.
8/17/2019 Lenguajes_1 java
37/62
Secuencia de escape
\n Salto de línea
\t Tabulador
\b Retorno\r Retorno de carro
\f Avance de línea
\\ Barra invertida
\' comilla
\" comillas
System.out.println("\tNombre:\tAntonio\n\tEdad:\t18" );
Nombre: AntonioEdad: 18
8/17/2019 Lenguajes_1 java
38/62
Sentencias de iteración o bucles
Ejecutar repetidamente el mismo bloque decódigo hasta que se cumpla una condiciónde terminación. – Inicialización: condiciones iniciales – Cuerpo: Sentencias que se quieren repetir. – Iteración: Incrementar o decrementar contadores
e índices. – Condición de terminación: Expresión condicional
que comprueba cada vez a lo largo de un bucle.
while, do-while y for.
8/17/2019 Lenguajes_1 java
39/62
for
Sentencia más compactaSintaxis
for(inicialización; condición de terminación; iteración ) {
cuerpo;}
inicialización se ejecuta una sola vez, cuando se empieza el bucle.
variable de control, en función de su valor se detiene o repite el bucle.
condición de terminación, expresión que debe evaluarse al principio yen cada repetición. Mientras sea verdadera se ejecuta el cuerpo.
Iteración, actualizar la variable de control.
cuerpo sentencias que se desea repetir, si es más de una deben irencerradas entre llaves {}.
8/17/2019 Lenguajes_1 java
40/62
Ejemplo
public class FOR{
public static void main(String[] args){
int contador;for(contador=0;contador
8/17/2019 Lenguajes_1 java
41/62
Ejemplo
import java.util.Scanner;public class FOR1{
public static void main(String[] args)
{ Scanner leer = new Scanner(System.in);int tabla;System.out.println("Tablas de multiplicar");System.out.print("Tabla=====> ");tabla=leer.nextInt();for(int ciclo=1;ciclo
8/17/2019 Lenguajes_1 java
42/62
for
Inicialización – Generalmente se inicializa la variable de control
– La variable de control se puede declarar e inicializar
– Puede omitirse – Varias expresiones separadas mediante el operador
coma (,). Izquierda a derecha.
for( x=0; x < 2; x++ )
for( int x=0; x < 2; x++ ) for(;x
8/17/2019 Lenguajes_1 java
43/62
for
Condición de terminación – Única expresión con un resultado booleano. – Operadores relacionales. – Mientras sea verdadera. – Evaluar al principio y en cada repetición
– 0 hasta for(x=1;x1;y=y-1)
for(int y=10;y= =1;y=y-1)
8/17/2019 Lenguajes_1 java
44/62
for
Iteración – actualiza la variable de control.
– Se ejecuta hasta el final.
– Puede cambiarse el valor de la variable en las sentencias(No es recomendable).
– Múltiples expresiones separadas por coma. Izquierda aderecha.
– Incrementos. Forma completa x=x+1. Forma abreviada x++. for( z=0; z < 100; z++,c+=2 )
for( z=0; z < 100; z=z+1,c=c+2 )
8/17/2019 Lenguajes_1 java
45/62
while
Ejecuta el cuerpo mientras la condición de terminación seaverdadera.
Las cláusulas de inicialización e iteración no forman parte de lapropia estructura del bucle. [son opcionales].
0 hasta
Sintaxis:
[inicialización;]while(condición de terminación) {cuerpo;[iteración;]}
8/17/2019 Lenguajes_1 java
46/62
while
La condición de terminación es una expresióncondicional->operadores relaciones.
Unir más de una expresión -> operadores lógicos.
se evalúa antes de ejecutar cualquiera de lassentencias situadas en el cuerpo del bucle. Mientras la evaluación sea positiva el cuerpo se
ejecuta. – while(x>10) – while(x>5 || b>6) – while(carac!=’s’ && opcion>5)
import java.util.Scanner;
8/17/2019 Lenguajes_1 java
47/62
public class WHILE {
public static void main(String[] args){Scanner leer =new Scanner(System.in);
int tabla;int ciclo;System.out.println("Tablas de multiplicar ");System.out.print("Tabla=====>");
tabla=leer.nextInt();ciclo=1;while(ciclo
8/17/2019 Lenguajes_1 java
48/62
do-while
Variación del while. La evaluación de la expresión condicional se hace después de
ejecutar el cuerpo. 1 hasta. Evaluar la expresión de terminación al final. Las cláusulas de inicialización e iteración no forman parte de la
propia estructura del bucle. Responsabilidad del programador.
Sintaxis:[inicialización;]
do {cuerpo;
[iteración;]}while(condición de terminación );
import java util Scanner;
8/17/2019 Lenguajes_1 java
49/62
import java.util.Scanner;public class DO {
public static void main(String[] args){Scanner leer =new Scanner(System.in);int tabla;
int ciclo;System.out.println("Tablas de multiplicar”);System.out.print("Tabla=====>");tabla=leer.nextInt();
ciclo=1;do{
System.out.println(ciclo +" X "+tabla + " = " + tabla*ciclo );ciclo++;
} while(ciclo
8/17/2019 Lenguajes_1 java
50/62
Ejercicio
Modificar el programa para calcular la tablade multiplicar para que se muestren solo losnúmeros pares. 2 opciones diferentes.
8/17/2019 Lenguajes_1 java
51/62
Ejercicio
Sumas: Esta clase suma todos los númerosdesde el 1 hasta llegar al número indicadopor el usuario (número final). Primero se pide
el número final al usuario, el programarealiza la suma y muestra el resultado de lamisma por pantalla: Ejemplo:
– Número del usuario =7. – Sumar: 1+2+3+4+5+6+7. – Mostrar en pantalla el resultado=28.
8/17/2019 Lenguajes_1 java
52/62
Ejercicio
• Factorial. Calcular el factorial y mostrarlo porpantalla. El factorial de un número enteropositivo se define como el producto de todoslos números naturales anteriores o iguales aél. Por definición el factorial de 0 es 1: 0!=1.
Por ejemplo, 5! = 5.4.3.2.1 = 120.
8/17/2019 Lenguajes_1 java
53/62
Sentencia break y continue
break. Salir de un bloque de código. Dentro delcuerpo de cualquiera de los bucles ocasionasu terminación independientemente que se
cumpla o no la condición.
continue. Interrumpir la secuencia normal delbucle. La iteración en que se encuentra elbucle finaliza y se inicia la siguiente.
Tablas de multiplicar
8/17/2019 Lenguajes_1 java
54/62
for(ciclo=1;ciclo 5
1 X 5 = 52 X 5 = 103 X 5 = 154 X 5 = 20
for(ciclo=1;ciclo 51 X 5 = 52 X 5 = 103 X 5 = 154 X 5 = 20
6 X 5 = 307 X 5 = 358 X 5 = 409 X 5 = 4510 X 5 = 50
8/17/2019 Lenguajes_1 java
55/62
Comentarios en Java
Información a los programadores. Tres tipos de comentarios:Sintaxis:// comentarios de una sola línea/*
comentarios de una o más líneas*//**comentario de documentación, de una o más líneas*/
Los de documentación se colocan antes de una declaración (variable o método).Indican que ese comentario ha de ser colocado en la documentación que segenera con la herramienta javadoc.•@version: versión.•@author: autor.•@param: parámetros recibidos por el método.•@return: significado del valor de retorno del método.
/*** Descripción de la clase
8/17/2019 Lenguajes_1 java
56/62
Descripción de la clase*
* @author (Nombre del autor)* @version (versión o fecha)*/
public class t
{
/*** Descripción del método** @param y contiene el valor central* @return regresa el valor central +5*/
public int sampleMethod(int y)
{// comentario de una líneareturn 5 + y; //puede ir en cualquier sitio
}
}
8/17/2019 Lenguajes_1 java
57/62
Resumen
Tipos de datos Operadores Variables
– Acumuladores
– Contadores Constantes Método main Clase Scanner
Impresión por pantalla Bucles, if-else, switch break; continue Comentarios
8/17/2019 Lenguajes_1 java
58/62
Respuesta bisiesto
import java.util.Scanner;public class Bisiesto{
public static void main(String[] args){
Scanner leer = new Scanner(System.in);int fecha;System.out.print("Escribe el año= => ");fecha=leer.nextInt();if ((( fecha % 4 == 0 ) && ( fecha % 100 != 0 )) || ( fecha % 400 == 0 ))
System.out.println(fecha +" Es bisiesto");else
System.out.println(fecha + " No es bisiesto");leer.close();
}}
import java.util.Scanner;public class Ecuacion{
public static void main(String[] args)
8/17/2019 Lenguajes_1 java
59/62
p ( g[] g ){
Scanner leer = new Scanner(System.in);float a,b,c;System.out.println("Calculo de la ecuación de segundo grado ax^2+bx+c");System.out.print("a ===> ");a=leer.nextFloat();
System.out.print("b ===> ");b=leer.nextFloat();System.out.print("c ===> ");c=leer.nextFloat();System.out.println("La ecuación que se calcula es "+a+" x^2 +"+b+" x +"+c);if(a==0.0)System.out.println("No es una ecuación de segundo grado");
elseif(Math.pow(b,2)
8/17/2019 Lenguajes_1 java
60/62
Respuesta multiplicación
public static void main(String[] args){for(int ciclo=0;ciclo
8/17/2019 Lenguajes_1 java
61/62
Respuesta factorial
import java.util.Scanner;public class Factorial{
public static void main(String[] args){
Scanner leer = new Scanner(System.in);int factorial,resultado,ciclo;
System.out.println("\nCalculo del Factorial");System.out.print("Indique el número ==>");
factorial=leer.nextByte();resultado=1;for(ciclo=1;ciclo
8/17/2019 Lenguajes_1 java
62/62
Respuesta suma
import java.util.Scanner;public class Sumas {public static void main(String[] args){
Scanner leer =new Scanner(System.in);int suma, indice,tope;do{suma=0;System.out.print("Hasta que número quieres sumar ===> ");
tope=leer.nextInt();for(indice=1;indice
Top Related