3/19/2019
1
JAVA: ELEMENTOS BÁSICOSIntroducción a la programación Orientada a Objetos -2019
JAVA
Java es un lenguaje de programación presentadoen 1995 enfocado a:
• soportar los fundamentos de la programaciónorientada a objetos.
• generar código independiente de la arquitecturade la computadora
Actualmente se utiliza particularmente paradesarrollar aplicaciones para Internet.
3/19/2019
2
ELEMENTOS BÁSICOS
• Variables, constantes y expresiones
• Asignación.
• Tipos Elementales. Precedencia de los operadores. Casting
• Estructuras de Control. Condicional e iteración.
• Estructura de una Clase en Java.
• Métodos.
• El método main.
• ENTRADA/SALIDA
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.
3/19/2019
3
TIPOS DE DATO• Todas las variables de un tipo comparten una
misma representación, toman valores de unmismo conjunto y pueden participar de las mismasoperaciones.
• El lenguaje establece restricciones que aseguranla consistencia entre los operadores provistos y losoperandos. Estas restricciones van a sercontroladas por el compilador o en ejecución.
• El compilador decide cuánto espacio dealmacenamiento va a requerir cada dato enejecución, de acuerdo a su tipo.
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 a
2147483647
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 DE DATOS
Introducción a la Programación Orientada a Objetos
3/19/2019
4
EXPRESIONES• Operadores relacionales
• Operadores booleanos
•Conjunción: & (and)
•Disyunción: | (or)
•Negación: ! (not)
igual ==
distinto !=
menor <
menor o igual <=
mayor >
mayor o igual >=
Introducción a la Programación Orientada a Objetos
•Completa ej: a & b
•En cortocircuito ej: a && b
EXPRESIONES
• En la evaluación completa se evalúan siempretodos los términos de la expresión. En laevaluación en cortocircuito sólo se evalúa lonecesario para verificar el resultado de laexpresión. EJ: si a es falso, ya no es necesarioevaluar b, porque sin importar su valor la expresióna&&b será falsa.
Introducción a la Programación Orientada a Objetos
3/19/2019
5
EXPRESIONES
++, --, !,-(valor negativo) ,
+(valor positivo) , type-cast
*, /, %
+, -
<, >, <=, >=
==, !=
&&
||
=, +=, -=, *=, /=, %=
Introducción a la Programación Orientada a Objetos
EXPRESIONES
• Asignación
< ident > = < expresion >;
< tipo >< ident > = < expresion >;
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.
Introducción a la Programación Orientada a Objetos
3/19/2019
6
EXPRESIONES
Introducción a la Programación Orientada a Objetos
La conversión entre tipos es automática si
•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.
Jerarquía de Tipos
byte →short→int→long→float→double
EXPRESIONES• Cuando el número a convertir está fuera del
rango del tipo a que se quiere convertir, laconversión automática es imposible. Este errorpuede salvarse mediante 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" elvalor de la variable de rango mayor se pierdeprecisión
Introducción a la Programación Orientada a Objetos
3/19/2019
7
ESTRUCTURAS DE CONTROL< 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
• Bloques
{ [< 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> ::=
3/19/2019
8
ESTRUCTURAS DE CONTROL
• Un bloque define un nuevo ambiente dereferenciamiento.
• Las variables declaradas dentro de un bloque sonlocales y no son visibles fuera de él.
• Adoptaremos la convención de declarar lasvariables de un bloque al principio e inicializarlasexplícitamente.
Introducción a la Programación Orientada a Objetos
ESTRUCTURAS DE CONTROL
• Condicional
if < expresion booleana >
< instruccion >
else
< instrucción >
Introducción a la Programación Orientada a Objetos
< instruccion if > ::=
3/19/2019
9
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;
Introducción a la Programación Orientada a Objetos
CONDICIONAL
CONDICIONAL
estado = ´B´;
if (promedio > 7)
if (inasistencias<3)
estado = ´A´;
else
estado = ´C´;
Introducción a la Programación Orientada a Objetos
estado = ´B´;
if (promedio > 7)
{ if (inasistencias<3)
estado = ´A´; }
else
estado = ´C´
3/19/2019
10
CONDICIONAL
• Switch
switch (<expression>) {
[ case <constante> : <instruccion> ]*
default: <instruccion>
}
Introducción a la Programación Orientada a Objetos
<instruccion switch>::=
CONDICIONAL
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´; }
Introducción a la Programación Orientada a Objetos
3/19/2019
11
ITERACIÓN
while (<expresion booleana>)
<instrucción>
do
<instrucción>
while (<expresion booleana>)
Introducción a la Programación Orientada a Objetos
< instruccion while > ::=
< instruccion do while> ::=
ITERACIÓN
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);
Introducción a la Programación Orientada a Objetos
3/19/2019
12
ITERACIÓN
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);
Introducción a la Programación Orientada a Objetos
ITERACIÓN
for ( <asignacion>; <expresion> ; <expresion>)
<instrucción>
for ( n = 1 ; n <= 10 ; n++ )
System.out.println( n, n*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 > ::=
3/19/2019
13
ITERACIÓN
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++);
Introducción a la Programación Orientada a Objetos
ESTRUCTURA DE UN PROGRAMA
• La unidad básica de programación en Java es laclase.
• Un programa en Java está constituido por unacolección de clases .
• La implementación de una clase consiste endefinir sus miembros:
• Atributos: variables de instancia y de clase
• Servicios: constructores y métodos
Introducción a la Programación Orientada a Objetos
3/19/2019
14
ESTRUCTURA DE UN PROGRAMA
• Símbolos separadores
( ) { } [ ] ; ,
•Comentarios:
• Los que ocupan varias líneas y se encierran
entre símbolos /* … */ o /** … */
• Los que comienzan con el símbolo // y terminan
junto con la línea
Introducción a la Programación Orientada a Objetos
MÉTODOS
[ < Modificador > ]* [< Tipo del Resultado > ]
< Identificador > ( [< Parámetros Formales > ]* )
{ < bloque > }
Introducción a la Programación Orientada a Objetos
3/19/2019
15
MÉTODOS• Para que un programa en JAVA pueda ejecutarse
es necesario definir una clase que incluya un método llamado main.
class Hello { //define una clase llamada Hello
public static void main (String args[]) {
// define el método main, asociado a los modificadores public y
static. IMPORTANTE no alterar el encabezamiento de main.
System.out.println("Hello World!");
// La instrucción System.out.println muestra un literal en pantalla.
}
}Introducción a la Programación Orientada a Objetos
EJEMPLO
ProcesarNumero
sumaDIg(n:entero):enteroestaDig(n:entero,d:entero):booleano
3/19/2019
16
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
……
}
}
EJEMPLO
class ProcesadorNumero {
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;
}
…}
EJEMPLO
3/19/2019
17
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;
}
EJEMPLO
public static void main (String args[]) {
int s = sumaDig(25036);
System.out.println(“La suma es “+s);
if (estaDig (250, 6))
System.out.println(“El digito esta“);
else
System.out.println(“El digito NO esta “);
}
Introducción a la Programación Orientada a Objetos
EJEMPLO
3/19/2019
18
ENTRADA Y SALIDA
• Salida:
• Entrada:
ES.leerChar ();
ES.leerEntero ();
ES.leerEnteroLargo ();
ES.leerFloat ();
ES.leerDouble ();
System.out.print (…);
System.out.println (…);
Introducción a la Programación Orientada a Objetos
EJEMPLOImplemente un método para decidir si un número es primo yúselo para mostrar los números primos menores a T (valoringresado por el usuario).
import IPOO.*;
class mostrarPrimos {
public static void main (String args[]) {
System.out.print(” Ingrese el valor del
limite”);
int T = ES.leerEntero();
for (int i = 0; i < T; i++)
if (esPrimo(i))
System.out.print(i+” ”); }
}
3/19/2019
19
EJEMPLO
class mostrarPrimos {
public static void main (String args[])
{…}//bloque método main
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;
}
}//fin de la clase
Aunque la solución es correcta,
no es recomendable que un
método tenga varios puntos de
salida.
static boolean esPrimo (int n){
boolean es;
if (n < 2) es = false;
else
if (n == 2) es = true;
else
if (n%2 == 0) es =false;
else
{for (int i = 2; i<=Math.sqrt(n) && es; i++)
if (n%i == 0 )
es = false ;}
return es;
}
} Introducción a la Programación Orientada a Objetos
Notemos que es una versión más eficiente.
EJEMPLO
3/19/2019
20
¿PREGUNTAS?
Top Related