UPS Fundamentos Java(1)

61
FUNDAMENTOS DE PROGRAMACIモN CON JAVA Jhonny Barrera J. Ing.

description

PARA LOS PRINCIPIANTES DE JAVA

Transcript of UPS Fundamentos Java(1)

Page 1: UPS Fundamentos Java(1)

FUNDAMENTOS DEPROGRAMACIÓN CON JAVA

Jhonny Barrera J. Ing.

Page 2: UPS Fundamentos Java(1)

ÍNDICE

Introducción a JavaTipos de datosVariables y constantesSentencias de condiciónSentencias de repeticiónArraysCadenas de caracteres

Page 3: UPS Fundamentos Java(1)

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

Page 4: UPS Fundamentos Java(1)

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

Page 5: UPS Fundamentos Java(1)

CARACTERÍSTICAS

SimpleOrientado a objetosDistribuidoRobustoSeguroIndependiente de la plataforma

Page 6: UPS Fundamentos Java(1)

SIMPLE

Sintaxis de C / C++ Gran base de programadores

Se eliminan sus problemas Aritmética de punteros Recolección de basura

Page 7: UPS Fundamentos Java(1)

ORIENTADO A OBJETOS

Paradigma de programación que basado enmodelar el sistema como clases einstancias de las clases(objetos)

Evolución del modelo imperativo

Page 8: UPS Fundamentos Java(1)

ROBUSTO

Gran cantidad de comprobaciones entiempo de ejecución Límite de arrays Tamaño de la pila Acceso a variables Tipo de objetos

Page 9: UPS Fundamentos Java(1)

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

Page 10: UPS Fundamentos Java(1)

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

Page 11: UPS Fundamentos Java(1)

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);

}}

Page 12: UPS Fundamentos Java(1)

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*/

Page 13: UPS Fundamentos Java(1)

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

Page 14: UPS Fundamentos Java(1)

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

Page 15: UPS Fundamentos Java(1)

VARIABLES

Qué variables son válidas:

intanIntii11thing11thingONE-HUNDREDONE_HUNDREDsomething2do

Page 16: UPS Fundamentos Java(1)

VARIABLES

Las variables tienen un tipo que define elrango de valores y las operaciones quepueden hacerse Java es fuertemente tipado

Tipos primitivosTipos referencia

Page 17: UPS Fundamentos Java(1)

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)

Page 18: UPS Fundamentos Java(1)

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

Page 19: UPS Fundamentos Java(1)

INICIALIZACIÓN

Las variables pueden inicializarse en ladefinición

int a = 2;char b = 'a';double c = 123.13123;Bicicleta d = new Bicicleta();

Page 20: UPS Fundamentos Java(1)

CONSTANTES

Variables que no pueden cambiar de valoruna vez establecido

a = 12;double b = 456.4546456;

Page 21: UPS Fundamentos Java(1)

OPERADORES ARITMÉTICOS

Binarios Suma: op1 + op2 Resta: op1 – op2 Multiplicacion: op1 * op2 División: op1 / op2 Módulo: op1 % op2

Page 22: UPS Fundamentos Java(1)

OPERADORES ARITMÉTICOS

Suma / resta unaria ++op1 op1++ --op1 op1--

Page 23: UPS Fundamentos Java(1)

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

Page 24: UPS Fundamentos Java(1)

OPERADORES BOOLEANOS

Operan sobre booleanos y devuelvenbooleanos AND: op1 && op2 OR: op1 || op2 NOT: !op1 XOR: op1 ^ op2

Page 25: UPS Fundamentos Java(1)

OPERADORES LÓGICOS

Operan sobre bits de los enteros AND: op1 & op2 OR: op1 | op2 XOR: op1 ^ op2 Complemento: ~op1

Page 26: UPS Fundamentos Java(1)

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

Page 27: UPS Fundamentos Java(1)

ORDEN DE EVALUACIÓN

Las expresiones complejas puedenevaluarse de diferentes formas

a + b – c * 4

¿((a + b) – c) * 4?¿((a + b) – (c * 4))?

Page 28: UPS Fundamentos Java(1)

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)

Page 29: UPS Fundamentos Java(1)

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)))

Page 30: UPS Fundamentos Java(1)

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

Page 31: UPS Fundamentos Java(1)

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

Page 32: UPS Fundamentos Java(1)

CONDICIONALES

Permiten ejecutar ciertas sentenciasdependiendo de una condición

If / else / else ifSwitch / case?:

Page 33: UPS Fundamentos Java(1)

IF / ELSE / ELSE IF

Sólo ejecuta el cuerpo si la condición escierta

La condición debe ser booleana

if (condición) {cuerpo

}

Page 34: UPS Fundamentos Java(1)

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.");}

}

Page 35: UPS Fundamentos Java(1)

IF / ELSE / ELSE IF

Es posible especificar qué hacer si lacondición no se cumple mediante el else

if (condición) {cuerpo1

}else {

cuerpo2}

Page 36: UPS Fundamentos Java(1)

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.");}

}

Page 37: UPS Fundamentos Java(1)

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

Page 38: UPS Fundamentos Java(1)

IF / ELSE / ELSE IF

if (condición1) {cuerpo1

}else if (condición2){

cuerpo2}else if (condición3) {

cuerpo3}else {

cuerpo4}

Page 39: UPS Fundamentos Java(1)

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 + ".");

}}

Page 40: UPS Fundamentos Java(1)

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}

Page 41: UPS Fundamentos Java(1)

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);

}}

Page 42: UPS Fundamentos Java(1)

BUCLES

Permiten ejecutar repetidamente unconjunto de sentencias (cuerpo) mientrasla condición de bucle se cumpla

Tres tipos while do while for

Page 43: UPS Fundamentos Java(1)

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

}

Page 44: UPS Fundamentos Java(1)

FOR

class EjemploFor{

public static void main(String[] args){

for(int i=0; i<10; i++){

System.out.println("Número: " + (i + 1) + ".");}

}}

Page 45: UPS Fundamentos Java(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

}

Page 46: UPS Fundamentos Java(1)

WHILE

class EjemploWhile{

public static void main(String[] args){

int i = 0;while (i < 10){System.out.println("Número: " + (i + 1)

+ ".");i++;

}}

}

Page 47: UPS Fundamentos Java(1)

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)

Page 48: UPS Fundamentos Java(1)

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);

}}

Page 49: UPS Fundamentos Java(1)

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;

}

Page 50: UPS Fundamentos Java(1)

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 + ".");

}}

}

Page 51: UPS Fundamentos Java(1)

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

Page 52: UPS Fundamentos Java(1)

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

Page 53: UPS Fundamentos Java(1)

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”;

Page 54: UPS Fundamentos Java(1)

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()

Page 55: UPS Fundamentos Java(1)

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

Page 56: UPS Fundamentos Java(1)

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

Page 57: UPS Fundamentos Java(1)

ARRAYS

Obtener el valor:<nombre>[<posición>] int a = precios[8]

Guardar valor:<nombre>[<posición>] = valor precios[6] = 50;

Page 58: UPS Fundamentos Java(1)

ARRAYS MULTIDIMENSIONALES

<tipo> <nombre>[][]... int precios[][];

Inicialización:<var> = new <tipo>[<num>][<num>]... precios = new int[80][40] //array de 80x40

Page 59: UPS Fundamentos Java(1)

ARRAYS

Obtener el valor:<nombre>[<posición>][<posición>] int a = precios[8][10]

Guardar valor:<nombre>[<pos>][<pos>] = valor precios[6][12] = 50;

Page 60: UPS Fundamentos Java(1)

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

Page 61: UPS Fundamentos Java(1)

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