curso de java estructura del lenguaje

Post on 01-Jan-2016

56 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Curso 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>; - PowerPoint PPT Presentation

TRANSCRIPT

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.

top related