ups fundamentos java(1)

Post on 23-Jan-2016

243 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

PARA LOS PRINCIPIANTES DE JAVA

TRANSCRIPT

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

top related