Post on 13-Feb-2015
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. ENTRADA Y SALIDA
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
Entrada y Salida
ES.leerChar (); ES.leerEntero (); ES.leerEnteroLargo (); ES.leerFloat (); ES.leerDouble ();
System.out.printSystem.out.println
class mostrarPrimos { public static void main (String args[]) { for (int i = 0; i < 100; i++) if (esPrimo(i)) System.out.print(i+” ”); } static boolean esPrimo (int n) {
}}
Implemente un método para decidir si un número es primo y úselo para mostrar los números primos menores a 100.
Introducción a la Programación Orientada a Objetos
Ejemplo
class mostrarPrimos { public static void main (String args[]) {… static boolean esPrimo (int n){
boolean es= true; if (n < 2 ) return false ; if (n == 2 ) return true ; for (int i = 2; (i < n) && es ; i++ ) if (n%i == 0 ) es=false; return es; }}
Introducción a la Programación Orientada a Objetos
Aunque la solución es correcta, no es recomendable que un método tenga varios puntos de salida.
Ejemplo
class mostrarPrimos { public static void main (String args[]) {… static boolean esPrimo (int n){
boolean es = true;if (n < 2 ) es = false;else if (n == 2 ) es = true;else if (n%2 == 0) es =false;else {for (int i = 3;
i<=Math.sqrt(n) && es; i=i+2) if (n%i == 0 ) es = false ;}
return es; }}
Introducción a la Programación Orientada a Objetos
Ejemplo
Notemos que es una versión más eficiente.
class mostrarPrimos { public static void main (String args[])
{ for (int i = 0; i < 100; i++) test (i); }
static void test (int i) { if (esPrimo(i)) System.out.println(i+" "); }
static boolean esPrimo (int n){
}}
Introducción a la Programación Orientada a Objetos
Ejemplo
Problema
Charles Babbage descubrió que el polinomio
f(x) = x2 + x + 41
tiene la curiosa propiedad de generar, en apariencia, sólo números primos. Muestre los primeros 20 números primos generados con este polinomio.
Introducción a la Programación Orientada a Objetos
class Babbage { public static void main (String args[]) {
for (int i = 0; i < 20; i++) System.out.println(i+” ”+babbage(i)); }
static int babbage (int n) { return x*x + x + 41; } }
Introducción a la Programación Orientada a Objetos
Ejemplo
BlueJ
Introducción a la Programación Orientada a Objetos
Ejercicios Propuestos
Introducción a la Programación Orientada a Objetos
Implemente un programa que lea dos números y muestre el mínimo
Implemente un programa que lea dos números enteros a y b y muestre la suma de los números comprendidos en el intervalo cerrado determinado por a y b
Implemente un programa que lea dos pares de números enteros, compute la suma de los números comprendidos en el intervalo cerrado determinado por cada par y muestre el mayor de los dos valores computados.
Implemente un programa que sume los primeros n números naturales hasta alcanzar el primer valor S mayor a un tope establecido por el usuario.