Date post: | 25-Jan-2016 |
Category: |
Documents |
Upload: | ana-ruiz-pineiro |
View: | 218 times |
Download: | 0 times |
Java
Java es un lenguaje de programación presentado en 1995 enfocado a:
• soportar los fundamentos de la programación orientada a objetos.
• generar código independiente de la arquitectura de la computadora
Actualmente se utiliza particularmente para desarrollar aplicaciones para Internet.
Introducción a la Programación Orientada a Objetos
VARIABLES, CONSTANTES Y EXPRESIONES
ASIGNACIÓN.
TIPOS ELEMENTALES. PRECEDENCIA DE LOS OPERADORES. CASTING
ESTRUCTURAS DE CONTROL. CONDICIONAL E ITERACIÓN. RECURSIVIDAD
ESTRUCTURA DE UNA CLASE EN JAVA.
MÉTODOS.
EL MÉTODO MAIN.
Elementos Básicos de Java
Variables y Constantes
Declaración [< modificador>] < tipo > < ident > [ , < ident > ] ;
Introducción a la Programación Orientada a Objetos
int i,I,j101;
static char fin =‘.’;
boolean eureka;
La declaración establece el nombre, tipo, alcance y determina si es variable o constante.Una declaración de constante establece también el valor.En el caso de una variable el valor puede quedar establecido en la declaración o no.
Tipos de Dato
Factorizar Propiedades. Todas las variables de un tipo comparten una misma representación, toman valores de un mismo conjunto y pueden participar de las mismas operaciones.
Efectuar Controles. El lenguaje establece restricciones que aseguran la consistencia entre los operadores provistos y los operandos. Estas restricciones van a ser controladas por el compilador o en ejecución.
Administrar la Memoria. El compilador decide cuánto espacio de almacenamiento va a requerir cada dato en ejecución, de acuerdo a su tipo.
Tipos Elementales
Introducción a la Programación Orientada a Objetos
Nombre de Tipo
valor memoria requerida
Rango
byte integer 1 byte -128 a 127
short integer 2 bytes -32768 a 32767
int integer 4 bytes -2147483648 a2147483647
long integer 8 bytes
float floating-point 4 bytes
double floating-point 8 bytes
char single character
2 bytes UNICODE
boolean true or false 1 bit
Tipos Elementales
Introducción a la Programación Orientada a Objetos
Tipos de Dato
Operadores booleanos•Conjunción •Disyunción •Negación
Operadores relacionales
igual ==
distinto !=
menor <
menor o igual <=
mayor >
mayor o igual >=
Expresiones
Introducción a la Programación Orientada a Objetos
Evaluación
•Completa•En cortocircuito
Conversión
Jerarquía de Tipos
byte →short→int→long→float→double
Expresiones
Introducción a la Programación Orientada a Objetos
Reglas de Precedencia y Asociatividad
++, --, !, unary – undary +, type-cast
*, /, %
+, -
<, >, <=, >=
==, !=
&&
||
?:
=, +=, -=, *=, /=, %=
Expresiones
Introducción a la Programación Orientada a Objetos
Asignación
< ident > = < expresion >;
< tipo >< ident > = < exp > [,< ident > = < exp > ];
Cuando la expresión que aparece a la derecha de una asignación no coincide con el tipo de la variable que está a la izquierda puede producirse una conversión automática o un error.
El error puede salvarse mediante una operación de casting.
Expresiones
Introducción a la Programación Orientada a Objetos
Conversión automática de tipos
Expresiones
Introducción a la Programación Orientada a Objetos
Si al hacer la conversión de un tipo a otro se dan las 2
siguientes premisas:
•Los dos tipos son compatibles.
•El tipo de la variable destino es de un rango mayor al tipo de
la variable que se va a convertir.
Entonces, la conversión entre tipos es automática
Casting
Expresiones
Introducción a la Programación Orientada a Objetos
•Cuando el número a convertir está fuera del rango del tipo a que se quiere convertir, entonces la conversión automática es imposible.
•El programador se ve obligado a realizar una conversión forzada (explicita), que se denomina casting.
•La sintaxis para realizar un casting es:
destino = (tipo_destino) valor
•En el caso de los tipos numéricos, al "recortar" el valor de la variable de rango mayor perdemos precisión
Estructuras de Control en Java
Instrucciones
< declaración de variable > | < expresion > ; | < bloque > | < instruccion if > | < instruccion while > | < instruccion for > |< instruccion switch > | < instruccion try > | < instruccion return > | < break > | < continue > |
Introducción a la Programación Orientada a Objetos
< instruccion > ::=
Estructuras de Control en Java
{ [< instruccion > ]* }
{ promedio = total / n ; System.out.print("El promedio es "); System.out.println(promedio); }
{ int temp; temp = x; x = y;
y = temp; }
Introducción a la Programación Orientada a Objetos
< bloque> ::=
Bloques
Estructuras de Control en JavaBloques
Un bloque define un nuevo ambiente de referenciamiento.
Las variables declaradas dentro de un bloque son locales y no son visibles fuera de él.
Un mismo nombre no puede ligarse a dos variables en el mismo bloque ni en bloques anidados.
Una variable puede ser referenciada a partir de la instrucción que sigue a su declaración.
Adoptaremos la convención de declarar las variables de un bloque al principio e inicializarlas explícitamente.
Introducción a la Programación Orientada a Objetos
Estructuras de Control en Java
if < expresion booleana > < instruccion > else < instrucción >
Condicional
Introducción a la Programación Orientada a Objetos
< instruccion if > ::=
if (x > y) { max = x; min = y ;} else { max = y; min = x ;}
if (x > y) { int temp; temp = x; x = y; y = temp;}
if (x > y) max = x;else max = y;
Condicional
Estructuras de Control en Java
Introducción a la Programación Orientada a Objetos
Estructuras de Control en Java
if (x > y) if (x > z) max = x; else max = z; else if (y > z) max = y; else max = z;
Condicional
Introducción a la Programación Orientada a Objetos
if (nota > 9) estado = ´A´; else if (nota > 7) estado = ´B´ ; else if (nota > 4) estado = ´C´ ; else if (nota < 4) estado = ´D´ ;
Estructuras de Control en Java
estado = ´B´;if (promedio > 7) if (inasistencias<3) estado = ´A´; else estado = ´C´;
Condicional
Introducción a la Programación Orientada a Objetos
estado = ´B´; if (promedio > 7) { if (inasistencias<3) estado = ´A´; } else estado = ´C´
Estructuras de Control en Java
switch
switch (<expression>) { [ case <constante> : <instruccion> ]* default: <instruccion> }
Condicional
Introducción a la Programación Orientada a Objetos
<instruccion switch>::=
Estructuras de Control en Java
switch switch ( nota ) { case 10: case 9: estado = ´A´ ; break; case 8: case 7: estado = ´B´ ; break; case 6: case 5: estado = ´C´ ; break; default: estado = ´D´; }
Condicional
Introducción a la Programación Orientada a Objetos
Estructuras de Control en Java
while (<expresion booleana>) <instrucción>
do <instrucción>while (<expresion booleana>)
Iteración
Introducción a la Programación Orientada a Objetos
< instruccion while > ::=
< instruccion do while> ::=
Estructuras de Control en Java
int numero; int digitos = 0; System.out.println (“Ingrese el numero”);numero = ES.leerEntero ();while ( número > 0 ) { numero /=10; digitos++; } System.out.println(digitos);
Iteración
Introducción a la Programación Orientada a Objetos
Estructuras de Control en Java
int numero; int digitos = 0; System.out.println (“Ingrese el numero”);numero = ES.leerEntero ();do { numero /=10; digitos++; } while ( número > 0 ); System.out.println(digitos);
Iteración
Introducción a la Programación Orientada a Objetos
Estructuras de Control en Java
for ( <asignacion>; <expresion> ; <expresion>) [ <instrucción>]*
for ( n = 1 ; n <= 10 ; n++ ) System.out.println( n, n*n );
Iteración
for ( int n = 1 ; n <= 10 ; n++ ) System.out.println( n, n*n );
Introducción a la Programación Orientada a Objetos
< instruccion for > ::=
Estructuras de Control en Java
sum = 0 ; for ( n = 1 ; n <= 10 ; n++ ) sum = sum + n ;
for ( n = 1, sum = 0 ; n <= 10 ; n++ ) sum = sum + n ;
for (n=1,sum=0; n<=10; sum=sum+n,n++);
Iteración
Introducción a la Programación Orientada a Objetos
for ( n = 1, sum = 0 ; sum <= 100 ; n++ ) sum = sum + n ;
for ( int n = 1, sum = 0 ;sum <= 100 ; n++ ) sum = sum + n ;
Estructura de un programa en JAVA
La unidad básica de programación en Java es la clase.
Un programa en Java está constituido por una colección de clases .
La implementación de una clase consiste en definir sus miembros:
•Atributos: variables de instancia y de clase
•Servicios: constructores y métodos
Introducción a la Programación Orientada a Objetos
Estructura de un programa en JAVA
( ) { } [ ] : ,
Símbolos separadores
Comentarios
•Los que ocupan varias líneas y se encierran entre símbolos /* y */ o /** y */•Los que comienzan con el símbolo // y terminan junto con la línea
Introducción a la Programación Orientada a Objetos
Estructura de un programa en JAVA
[ < Modificador > ]* [< Tipo del Resultado > ]
< Identificador > ( [< Parámetros Formales > ]* )
{ < bloque > }
MétodosSintaxis
Introducción a la Programación Orientada a Objetos
Estructura de un programa en JAVA
Métodos
Para que un programa en JAVA pueda ejecutarse es necesario definir una clase que incluya un método llamado main().
class Hello { public static void main (String args[]) { System.out.println("Hello World!"); }}
Introducción a la Programación Orientada a Objetos
Estructura de un programa en JAVA
Métodos
•La primera línea define una clase llamada Hello.
•La segunda clase define el método main, asociado a los modificadores public y static. Es importante que no omitan ni alteren el encabezamiento de main.
•La palabra void indica que el método main no retorna ningún valor.
•La forma (String args[]) es la definición de los argumentos que recibe el método main.
•La instrucción System.out.println muestra un literal en pantalla.
Introducción a la Programación Orientada a Objetos
BlueJ
Introducción a la Programación Orientada a Objetos
Procesador Número
ProcesarNumero
sumaDigitos ( n:entero ) : entero
estaDigito ( n:entero, d:entero ) : booleano
sumaP ( n:entero ) : booleano
class ProcesadorNumero {public static int sumaDig(int n ){// Retorna la suma de los dígitos del número n}public static boolean estaDig (int n, int d ){//Retorna true si y solo si d es un dígito del número n }}
• Clases como unidad de programación• Identificadores• Modificadores public static• Símbolos delimitadores { } /* */ // () , ;
Elementos de Java
public static int sumaDig(int n ){//Retorna la suma de los dígitos del número n int s=0;while (n>0) { s = s + n % 10; n = n/10; }return s;}
El tipo elemental intParámetros y variables localesAsignaciones y expresiones, operadores y operandosLa iteración whileLa instrucción de retorno
Elementos de Java
Para que un programa en JAVA pueda ejecutarse es necesario que una clase incluya un método llamado main().
public static void main (String args[]) { int s = sumaDig(25036); System.out.println(“La suma es “+s); }
Introducción a la Programación Orientada a Objetos
Elementos de Java
•Es importante que no omitan ni alteren el encabezamiento de main.
•La palabra void indica que el método main no retorna ningún valor.
•La forma (String args[]) es la definición de los argumentos que recibe el método main.
•La instrucción System.out.println muestra un literal en pantalla.
Introducción a la Programación Orientada a Objetos
Elementos de Java
public static boolean estaDig(int n,int d ){/* Retorna true si y solo si d es un dígito del número n */boolean esta = false;while (n>0) && !esta { if (d == n % 10) esta = true; n = n/10; }return esta;}
Elementos de Java
Implemente una consulta en Java, consistente con el planteo recursivo propuesto, para calcular la suma de los dígitos pares de un número N.
public static int sumaP(int n){
}
Problema
Planteo
Caso trivial: la suma de los dígitos pares de un número N impar, menor a 10 es 0. Caso trivial: la suma de los dígitos pares de un número N par, menor a 10 es N. Caso Recursivo: la suma de los dígitos pares de un número N =dm,dm-1,…,d1,d0 (m>0) con d0 par es la suma de los dígitos pares de N’= dm,dm-1,…,d1, más d0,
Caso Recursivo: la suma de los dígitos pares de un número N =dm,dm-1,…,d1,d0 (m>0) con d0 impar es la suma de los dígitos pares de N’= dm,dm-1,…,d1,
Dada la siguiente definición recursiva:
0 si N < 10 y N es impar
1 si N < 10 y N es par
contarPPI (N) contarPPI(N/10) +1 si N = d1.. dk con k>1,
k impar y dk es par contarPPI(N/10) en cualquier otro caso.
Explique verbalmente qué valor computa la definición.
Implemente un método en Java a partir de la definición, asumiendo que dispone de un método que retorna la cantidad de dígitos de un número y otro que decide si un número es par.
Reformule la implementación de modo que la cantidad de dígitos se calcule una única vez.
Problema