UPS Fundamentos Java(1)
-
Upload
sralbaficadelavernouss -
Category
Documents
-
view
236 -
download
0
description
Transcript of UPS Fundamentos Java(1)
FUNDAMENTOS DEPROGRAMACIÓN CON JAVA
Jhonny Barrera J. Ing.
ÍNDICE
Introducción a JavaTipos de datosVariables y constantesSentencias de condiciónSentencias de repeticiónArraysCadenas de caracteres
UNA BREVE HISTORIA
Iniciativa de Sun Microsystems en 1991Lenguaje para ser empleado en
dispositivos pequeños (set top boxes) Poca memoria Poca potencia Independencia de la plataforma
UNA BREVE HISTORIA
Fracaso y oportunidadCon el auge de la WWW, crearon el navegador
HotJava Características de Java Primero en usar applets
El éxito vino porque Netscape aceptó los applets
CARACTERÍSTICAS
SimpleOrientado a objetosDistribuidoRobustoSeguroIndependiente de la plataforma
SIMPLE
Sintaxis de C / C++ Gran base de programadores
Se eliminan sus problemas Aritmética de punteros Recolección de basura
ORIENTADO A OBJETOS
Paradigma de programación que basado enmodelar el sistema como clases einstancias de las clases(objetos)
Evolución del modelo imperativo
ROBUSTO
Gran cantidad de comprobaciones entiempo de ejecución Límite de arrays Tamaño de la pila Acceso a variables Tipo de objetos
SEGURO
Seguridad a nivel de código Se comprueba que el código es coherente
antes de ejecutarseSeguridad en ejecución
Gestores de seguridad limitan acceso arecursos
INDEPENDIENTE DE LA PLATAFORMA
Java es multiplatafroma Escribe (compila) el código una vez y podrás
ejecutarlo donde sea Multiplataforma mediante el uso de un código
intermedio (bytecodes)Java Virtual Machine
Interpreta el código bytecode
CÓDIGO DE EJEMPLO
public class Basic {public static void main(String[] args) {
int sum = 0;for (int current = 1; current <= 10; current++) {
sum += current;}System.out.println("Sum = " + sum);
}}
COMENTARIOS
Comentario de una línea: // int usu = 0; // el número de usuarios
Comentario de bloque: /* .... */ /* Estas líneas 2 no se tendrán en cuenta enla compilación*/
LA DEFINICIÓN DE LA CLASE
En Java, todo son clasesAsí que cada fichero define una clase, incluso el
programa principal public class MiClase
La clase tiene atributos y métodosEl método main es especial
public static void main(String[] args) {...} Es el punto de arranque de una clase
VARIABLES
Almacenan el estado de los objetosPueden definirse en cualquier parte del código,
antes de su usoDeben empezar con letra, guión bajo (_) o dólar
($)Sensible a mayúsculas/minúsculas
VARIABLES
Qué variables son válidas:
intanIntii11thing11thingONE-HUNDREDONE_HUNDREDsomething2do
VARIABLES
Las variables tienen un tipo que define elrango de valores y las operaciones quepueden hacerse Java es fuertemente tipado
Tipos primitivosTipos referencia
TIPOS DE DATOS PRIMITIVOS
Enteros (se inicializan a 0) Byte: un byte con signo ((byte)12) Short: dos bytes con signo ((short)1231) Int: cuatros bytes con signo (1238921) Long: ocho bytes con signo (728478283L)
Reales (se inicializan a 0.0) Float: punto flotante 32 bits (1.2342F) Double: punto flotante 64 bits (123.131)
TIPOS DE DATOS PRIMITIVOS
Booleanos (se inicializa a false) true / false
Carácter (se inicializa al carácter nulo) 'S', 'a'
El tamaño de datos está definido y esindependiente de la plataforma
INICIALIZACIÓN
Las variables pueden inicializarse en ladefinición
int a = 2;char b = 'a';double c = 123.13123;Bicicleta d = new Bicicleta();
CONSTANTES
Variables que no pueden cambiar de valoruna vez establecido
a = 12;double b = 456.4546456;
OPERADORES ARITMÉTICOS
Binarios Suma: op1 + op2 Resta: op1 – op2 Multiplicacion: op1 * op2 División: op1 / op2 Módulo: op1 % op2
OPERADORES ARITMÉTICOS
Suma / resta unaria ++op1 op1++ --op1 op1--
OPERADORES DE COMPARACIÓN
Devuelven booleanos Igualdad: op1 == op2 Desigualdad: op1 != op2 Mayor que: op1 > op2 Mayor o igual que: op1 >= op2 Menor que: op1 < op2 Menor o igual que: op1 <= op2
OPERADORES BOOLEANOS
Operan sobre booleanos y devuelvenbooleanos AND: op1 && op2 OR: op1 || op2 NOT: !op1 XOR: op1 ^ op2
OPERADORES LÓGICOS
Operan sobre bits de los enteros AND: op1 & op2 OR: op1 | op2 XOR: op1 ^ op2 Complemento: ~op1
OPERADORES DE ASIGNACIÓN
Asigna el valor de una variable a otra op1 = op2
Deben ser compatibles en tipo Enteros, reales, carácter Misma clase o subclases
Al asignar variables referencia, no se haceuna copia del objeto
ORDEN DE EVALUACIÓN
Las expresiones complejas puedenevaluarse de diferentes formas
a + b – c * 4
¿((a + b) – c) * 4?¿((a + b) – (c * 4))?
ORDEN DE EVALUACIÓN
Se pueden emplear paréntesis paraespecificar el orden de evaluación ((a + b) – c) * 4
Existen las reglas de precedencia * y / más precedencia que + y -
Pero es mejor despejar la ambigüedadmediante el uso de paréntesis a + b – (c * 4)
ASOCIATIVIDAD
En operadores binarios, ¿cómo se leenlos operadores?
Asociatividad a la izquierda: suma 1 + 2 + 3 + 4 => (((1 + 2) + 3) + 4)
Asociatividad a la derecha a = b = c => (a = (b = (c)))
SENTENCIAS
Una sentencia es una unidad completa deejecución y termina en punto y coma
Sentencias de expresión Una expresión terminada en ;
Sentencias de declaraciónSentencias de control de flujo
BLOQUE
Un bloque es un conjunto de cero o mássentencias agrupadas entre llaves{
int a = 1120;}
Un bloque es, funcionalmente, como unasentencia y puede aparecer dónde puedanaparecer sentencias
CONDICIONALES
Permiten ejecutar ciertas sentenciasdependiendo de una condición
If / else / else ifSwitch / case?:
IF / ELSE / ELSE IF
Sólo ejecuta el cuerpo si la condición escierta
La condición debe ser booleana
if (condición) {cuerpo
}
IF / ELSE / ELSE IF
public class EjemploIf{
public static void main(String[] args){
int edad = 20;if (edad < 18)
System.out.println("Eres menor de edad.");if (edad >= 18)
System.out.println("Eres mayor de edad.");}
}
IF / ELSE / ELSE IF
Es posible especificar qué hacer si lacondición no se cumple mediante el else
if (condición) {cuerpo1
}else {
cuerpo2}
IF / ELSE / ELSE IF
public class EjemploElse{
public static void main(String[] args){
int edad = 16;if (edad < 18)
System.out.println("Eres menor de edad.");else System.out.println("Eres mayor de
edad.");}
}
IF / ELSE / ELSE IF
Se pueden encadenar varios condicionalesAunque más de una condición sea cierta,
sólo se ejecuta el cuerpo de la condiciónque aparece la primera
Si no se verifica ninguna condición, seejecuta el else final
IF / ELSE / ELSE IF
if (condición1) {cuerpo1
}else if (condición2){
cuerpo2}else if (condición3) {
cuerpo3}else {
cuerpo4}
IF / ELSE / ELSE IF
public class EjemploIfElse{
public static void main(String[] args){
int puntos = 76;String nota = new String();if (puntos >= 90) nota = "Sobresaliente";
else if (puntos >= 70) nota = "Notable";else if (puntos >= 60) nota = "Bien";else if (puntos >= 50) nota = "Suficiente";else nota = "Suspenso";System.out.println("Tu nota es: " + nota + ".");
}}
SWITCH
Modo compacto de los if else anidadosSólo permite condiciones de igualdad
Si la condición es igual a 'a', se ejecuta cuerpo1
Si ninguna se verificase ejecuta 'default'
switch (condición) {case a: cuerpo1case b: cuerpo2default: cuerpo3}
SWITCHpublic class EjemploSwitch {
public static void main(String[] args) {int fecha = 8;String mes;switch (fecha){
case 1: mes = "Enero"; break;case 2: mes = "Febrero"; break;case 3: mes = "Marzo"; break;case 4: mes = "Abril"; break;case 5: mes = "Mayo"; break;case 6: mes = "Junio"; break;case 7: mes = "Julio"; break;case 8: mes = "Agosto"; break;case 9: mes = "Septiembre"; break;case 10: mes = "Octubre"; break;case 11: mes = "Noviembre"; break;case 12: mes = "Diciembre"; break;default: mes = "Inválido"; break;
}System.out.println(mes);
}}
BUCLES
Permiten ejecutar repetidamente unconjunto de sentencias (cuerpo) mientrasla condición de bucle se cumpla
Tres tipos while do while for
FOR
Ejecuta el cuerpo del bucle mientras la condiciónsea cierta
Antes de la primera iteración, realiza lainicialización Ámbito del cuerpo del for
Tras cada iteración, ejecuta el incremento
for (inicialización; condición; incremento) {cuerpo
}
FOR
class EjemploFor{
public static void main(String[] args){
for(int i=0; i<10; i++){
System.out.println("Número: " + (i + 1) + ".");}
}}
WHILE
while: ejecuta el cuerpo del bucle mientrasla condición sea cierta
La condición se evalúa antes de la iteración
while (condición) {cuerpo
}
WHILE
class EjemploWhile{
public static void main(String[] args){
int i = 0;while (i < 10){System.out.println("Número: " + (i + 1)
+ ".");i++;
}}
}
DO WHILE
do while: ejecuta el cuerpo del buclemientras la condición sea cierta
La condición se evalúa al final de laiteración, con lo que siempre se ejecuta almenos una vez
do{cuerpo
} while (condición)
DO WHILE
class EjemploDoWhile{
public static void main(String[] args){
int i = 0;do{
System.out.println("Número: " + (i + 1) +".");
i++;} while (i < 10);
}}
BREAK
Rompe la ejecución de un bucle y devuelveel control al exterior
Puede proporcionarse una etiqueta y salirde bucles anidados
while (condición) {....break;
}
BREAKclass EjemploBreakContinue{
public static void main(String[] args){
System.out.println("Para en el número 5:");for(int i=0; i<10; i++){
if (i == 5) break;System.out.println("Número: " + (i + 1) + ".");
}System.out.println("\nSe salta el número 5:");int i = 0;while (i < 10){
i++;if (i == 5) continue;System.out.println("Número: " + i + ".");
}}
}
RETURN
Termina la ejecución del método y sale deél
Si el método tienen que devolver un valor,debe especificarse en la sentencia returnEjem return a;
Si no se especifica, al final del método hayun return implícito
MÉTODO MAIN
Es un método especialPunto de entrada del programapublic static void main(String args[])args: vector de cadenas de texto que
representa los parámetros pasados alprograma
CADENAS DE CARACTERES
Java proporciona una clase String
Los literales cadena: “Hola a todos”Se pueden asignar cadenas a variables
directamente String hola = “Hola mundo”;
CADENAS DE CARACTERES
El operador '+' concatena cadenas “hol” + “a Mundo”: “hola Mundo” String a = “Hola”;
String b = “Mundo”;String c = a + ' ' + b; // “Hola Mundo”
Algunos métodos de la clase String length() equals()
CADENAS DE CARACTERES
El método toString()Definido en Object
Da el nombre de la clase y la posición dememoria del objeto
Se puede redefinir para que devuelva loque queramos
ARRAYS
Colección de elementos del mismo tipo<tipo> <nombre>[]
int precios[]; Inicialización:
<var> = new <tipo>[<num>] precios = new int[80] //array de 80 precios bicicletas = new Bicicletas[10];
Si los elementos del array son tipos primitivos, secrean y se inicializan a 0
ARRAYS
Obtener el valor:<nombre>[<posición>] int a = precios[8]
Guardar valor:<nombre>[<posición>] = valor precios[6] = 50;
ARRAYS MULTIDIMENSIONALES
<tipo> <nombre>[][]... int precios[][];
Inicialización:<var> = new <tipo>[<num>][<num>]... precios = new int[80][40] //array de 80x40
ARRAYS
Obtener el valor:<nombre>[<posición>][<posición>] int a = precios[8][10]
Guardar valor:<nombre>[<pos>][<pos>] = valor precios[6][12] = 50;
ARRAYS
Los arrays no son dinámicos Tienen tantos elementos como se indique al
crearlo y no pueden cambiarLos arrays van desde 0 hasta tam – 1Para saber el tamaño: array.length
ARRAYS
String[] ciudades = {"Madrid", "Barcelona", "Bilbo", "Donosti","Gasteiz", "Iruña"
};
¿Cúal es el índice de Bilbo?¿Cómo es la expresión para acceder a Bilbo?¿Cuál es el resultado de ciudades.length?¿Cuál es el índice del último elemento?¿Cuál es el valor de la expresión ciudades[3]?
2ciudades[2]
65
Donosti