0% encontró este documento útil (0 votos)
57 vistas71 páginas

Java Conceptos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
57 vistas71 páginas

Java Conceptos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 71

Universidad Nacional Mayor de San Marcos

Curso: Programacin Avanzanda


Tema: Java Conceptos
Objetivos
Programar aplicaciones y algoritmos sencillos
en JAVA conociendo:
El entorno de programacin
Los tipos primitivos
Operadores bsicos
Instrucciones condicionales
Manejo de documentacin

2
Aspectos generales
Java es... Neutro en arquitectura
Lenguaje alto nivel Porttil
Simple Seguro
Orientado objetos
Distribuido
Interpretado
Robusto

3
Las metas tecnolgicas de Java
Permitir ejecutar aplicaciones multi hilos
Cargar clases dinmicamente, en el momento
que son requeridas
Soportar dinmicamente cambios en
programas mientras la API se ejecuta
Ofrecer una mejor seguridad

4
Las metas principales de Java
La JVM (Java Virtual Machine)
Recolector automtico de memoria (Garbage
collector)
Seguridad del cdigo

5
Arquitectura
Java no se compila
Se convierte a un pseudocdigo
Un intrprete lo ejecuta en el CPU

mi_prog.java
Intrprete

mi_prog.class
Compilador

6
La mquina virtual Java
Prove las especificaciones de la plataforma de
hardware
Lee el bytecode compilado que es independiente de
la plataforma
Puede ser implementada como software hardware
Puede ser implementada como herramienta de
desarrollo de Java como un navegador Web

7
La mquina virtual de Java
Prove definiciones para:
Juego de instrucciones (CPU)
Juego de registros
El formato de los archivos de clases
El colector automtico de memoria
Espacio de memoria

8
Colector automtico de memoria
La memoria que no es usada la libera
En otros lenguajes esto es responsabilidad del
programador
Aspectos
Revisa y libera memoria no usada
Es automtico

9
Entorno de desarrollo JDK
Herramienta bsica JDK
(Java Developers Kit)

El kit contiene bsicamente:

El compilador: javac.exe
El depurador: jdb.exe
El intrprete: java.exe y javaw.exe
El visualizador: appletviewer.exe
El generador de documentacin: javadoc.exe
Un desensamblador de clases: javap.exe

10
El ambiente de ejecucin
Conocido como el JRE
(Java Runtime Environment)
Realiza las siguiente tareas sobre el cdigo:
Carga
Verifica
Executa

11
El cargador de clases
Carga las clases necesarias para la ejecucin del
programa
Distingue por nombre clases del sistema local de
archivos de aquellas de la red
Ofrece seguridad evitando caballos de Troya
Previene el acceso a areas restringidas de cdigo
Solo asigna memoria una vez que todas las clases han sido
cargadas en el sistema

12
El verificador del bytecode
Asegura que el cdigo
Sea coherente con la especificacin JVM
No viola la integridad del sistema
No causa desbordamientos de pilas
Que todos los tipos de parmetros son correctos
Que no hay conversion ilegal de datos

13
Elementos Bsicos
de Java
Palabra reservada class (minusculas)

El nombre de la clase Hola (Primera mayuscula)

Es susceptible a Minsculas y Maysculas

El cuerpo de la clase comienza con { y finaliza con }

Al final de cada instruccin lleva ;

Dentro del cuerpo se declaran los atributos y mtodos

Para que un programa se puede ejecutar debe de contener un mtodos main ( )

public static void main (String argumentos [] );

(Este lnea debe de estar en la declaracin de la clase principal al inicio)

14
Practica Hola Mundo!

1. Se guardara el archivo con el mismo nombre de la clase principal, cuidando la inicial con mayscula y
extensin .java
Hola.java
2. Digita el cdigo
class Hola {
public static void main (String argumentos [ ] ){
System.out.println(Hola, mundo! );
} \\fin mtodo
} \\fin clase
3. Se compila: javac Hola.java
Nos genera el archivo Hola.class (Que contiene el cdigo bytecode)

4. Se ejecuta: java Hola (El interprete buscar el archivo Hola.class)

Hola, mundo!

15
Explicacin Hola Mundo!
Declaracin del mtodo main():

public: Indica que el mtodo es pblico, puede ser llamado desde otras clases.
(Todo mtodo main() debe ser pblico para poder ejecutarse desde el intrprete de
Java (JVM)

static: Indica que la clase no necesita ser instanciada para poder utilizar el mtodo
al que califica, indica que el mtodo es el mismo para todas las instancias que se
pudieran crear.

void: Indica que la funcin main no devuelve ningn valor.

El mtodo main debe aceptar siempre, como parmetro, un vector de string, que
contendr los posibles argumentos que se le pasen al programa en la lnea de
comandos, en este caso no se utiliza.

El mtod main ( ) siempre se declara de la misma forma.

16
Gramtica de Java

Comentarios En Java hay tres tipos de comentarios:

// comentarios para una sola lnea

/* comentarios de una o ms lneas


*/

/** comentario de documentacin, de una o ms lneas


*/

17
Variables
Variable
Es el trmino de programacin en lenguaje Java
para definir atributos
Esta compuesta por:
Tipo
Identificador nico

18
Identificadores
Son nombres asignados a clases, variables,
mtodos.
El primer caracter vlido debe ser :
Una letra mayscula (A-Z)
Una letra minscula (a-z)
El caracter subndice (_)
El caracter dolar ($)

19
Identificadores
El segundo caracter valido debe ser:
Cualquier caracter de la lista anterior
Caracteres numricos (0-9)
Cuando el identificador tiene varias palabras cada
subpalabra inicia con mayscula
Palabras reservadas Java no deben ser usadas
El lenguaje Java es sensitivo en caracteres
maysculas/minsculas

20
Por convencin:
Las clases deben comenzar con una letra Mayscula

Las variables y mtodos deben ir con letra minscula

Las constantes en MAYSCULA

21
Ambito de las variables
Variables locales
Existen solo en el metodo() en que se definieron
public void primerMetodo(){
int i =4, j=5;
}//fin metodo

Variables globales
Todos los mtodos de la clase las conocen y se definen al
inicio de la clase
public class AmbitoVariables{
private int i =1;
}//fin clase

22
Tipos primitivos Java y tipos de
referencia

Todas las variables tienen asociado un tipo sea:


Primitivo
Referencia
El tipo restringe los valores que pueden ser
asignados a una variable.
La sintaxis de declaracin es:
tipo id_variable

23
Tipos primitivos Java
Tipos primitivos son 8:
Lgicos - boolean
Texto - char
Enteros byte, short, int, long
Flotantes double, float

24
Lgicos - boolean
El tipo boolean tiene dos literales:
true
false
Ejemplo:
boolean hecho=true;
Declara la variable hecho como un tipo boolean y
le asigna el valor de true

25
Texto- char y String
char
Representa un caracter Unicdigo de 16 bits
Debe tener su literal encerrada en comillas ()
Usa la siguiente notacin:
a La letra a
\t Un tabulador insertado

26
Texto- char y String
String
No es un tipo primitivo, es una clase
Tiene sus literales encerradas entre comillas ()
El perro esta contento con su hueso
Puede ser usado como a continuacin:
String saluda = Buenos das !!! \n;
String mensajeError = Registro no encontrado \n;

27
Enteros- byte, short, int, long
Usa tres formas Decimal, octagecimal
hexadecimal
2 forma decimal del entero 2
O77 la O indica un valor octagecimal
0xBAAC el 0x indica un valor hexadecimal

28
Enteros- byte, short, int, long
Los tipos enteros tienen los rangos:

Tamao Nombre Rango


del entero tipo
8 bits byte -128..127

16 bits short -32.768..32.767

32 bits int -2.147.483.648..2.147.483.647

64 bits long -9.223.372.036.854.775.808..9.223.372.036.854.775.807

29
Punto flotante- float, double
Se utilizan cuando se calculan funciones
que requieren precisin fraccionaria
Raz cuadrada
Trigonomtricas
float f2 = 3.14f;
Seno y el coseno
double pi = 3.14159365358979323846;

Nombre Anchura Rango

double 64 1.7e-308..1.7e+308

float 32 3.4e-038..3.4e+038

30
Punto flotante- float, double
Por defaulf es double (64 bits)
La literal de punto flotante (32 bits) incluye el punto decimal o
alguno de los siguientes:
E e (para adicionar un valor exponente)
F f (flotante) (32 bits)
D d (double) (64 bits)
3.14 Un simple valor de punto flotante
6.02E23 Un valor grande de punto flotante
2.718F Un simple valor float
123.4E+306D Un double muy grande con D
redundate

31
Tipos por referencia en Java
Dspues de los tipos primitivos el resto son
tipos por referencia
Una variable por referencia tiene un
manejador asociado a un objeto.

32
Tipos por referencia en Java
Ejemplo
MiFecha.java
public class MiFecha{
private int dia = 1;
private int mes = 1;
private int ao =2002;
public MiFecha(int dia, int mes, int ao){}
}//MiFecha
PruebaMiFecha.java
public class PruebaMiFecha{
public static void main(String[] args){
MiFecha hoy= new MiFecha(22,9,1971);
}//main
}//PruebaMiFecha

33
Construccin e inicializacin de
instancias de objetos
Mediante la palabra new XXX() se asigna un lugar en
:
Asignacin de un espacio de memoria y se inicializan sus
variables (ej.- 0, false, null..)
La asignacin explicita de atributos
Un constructor se ejecuta
La asignacion de una variable referencia el objeto en
memoria
Ejemplo:
MiFecha miFecha = new MyFecha(22,09,1971);

34
Asignacin de memoria
Una declaracin asigna espacio solo para una
referencia:
MiFecha miAniversario;

Usar el operador new para asignar????


miAniversario espacio a MiFecha
MiFecha miAniversario = new MiFecha(22,09,1971);

miAniversario ????
da 0
mes 0
ao 0
35
Inicializacin explcita de atributos
Inicializar atributos
MiFecha miAniversario = new MiFecha(22,09,1971);

miAniversario ????
da 1
mes 1
ao 2002
Los valores por default son tomados de la
declaracin de atributos en la clase

36
Ejecucin del constructor
Ejecuta el constructor correspondiente
MiFecha miAniversario = new MiFecha(22,09,1971);

miAniversario ????
da 22
mes 09
ao 1971
Si el constructor es sobrecargado, el primer
constructor llama al otro.

37
Asignacin de una variable

Asignar el objeto creado a la variabe de


referencia:
MiFecha miAniversario = new MiFecha(22,09,1971);

miAniversario 0x01abcdef
da 22
mes 09
ao 1971

38
Asignando tipos de referencia

Considerese el siguiente fragmento de cdigo:

int x =9;
int y =x;
MiFecha s =new MiFecha(22,9,1971)
MiFecha t = s;
t= new MiFecha(22,12,1970);

Como quedaron las variables?

39
Pasaje por valor
El lenguaje Java solo pasa argumentos por
valor.
Cuando una instancia de objeto es pasada
como argumento a mtodo, el valor del
argumento es referenciado al objeto.
Los contenidos del objeto pueden ser
cambiados en el mtodo pero el objeto
referenciado nunca cambia.

40
Ejemplo
PruebaPasaje.java
public class PruebaPasaje{
//intenta cambiarlo
//Mtodos para cambiar los valores actuales cambiaInt(val);
public static void cambiaInt(int valor){ //cual es el valor actual?
valor = 55; System.out.println("El valor int es: " +val);
}//cambiaInt(..
//asignar la fecha
public static void cambiaRefObjeto(MiFecha ref){ fecha = new MiFecha(22,7,1964);
ref = new MiFecha(1,1,2000); //intenta cambiarla
}//cambiaRefObjeto(.. cambiaRefObjeto(fecha);
//cual es el valor actual?
public static void cambiaAtribObjeto(MiFecha ref){ fecha.print();
ref.setDa(4);
}//cambiaAtribObjeto(.. //Ahora cambio de atributo de da
//via la referencia del objeto
public static void main(String args[]){ cambiaAtribObjeto(fecha);
MiFecha fecha; //cual es el valor acutal?
int val; fecha.print();
}//main
//Asignar el int }/*class PruebaPasaje */
val = 11;

41
Resultado programa?
Java PruebaPasaje
El valor Int es: 11
MiFecha: 22-7-1964
MiFecha: 4-7-1964

Solo cambiaAtribObjeto altera los atributos !

42
La referencia this
Es una palabra reservada que sirve para:
Referenciar un atributo local y miembros de
mtodos dentro de un mtodo o constructor local.
Ayuda a distinguir entre un a variable local de un
mtodo constructor con respecto a una variable de
instancia de clase.
Pasar el objeto actual como un parmetro a otro
mtodo constructor.

43
Convenciones de codificacin de
programas en Java
Paquetes
package mundo.pais;
Clases
class Francia
Interfaces
interface Comida
Mtodos
ofreceDesayuno()

44
Convenciones de codificacin de
programas en Java
Variables
bebida
Constantes
LECHE_CON_CHOCOLATE
MEDIDA_TAZA

45
Convenciones de codificacin de
programas en Java
Estructuras de control:
if ( condicin) { Requieren
llaves {}
haz algo/*comentario*/
} else {
haz otra cosa //comentarios
}
Solo una
instruc- Usar identacin para
cin x cdigo claro
linea
46
Variables y contexto
Variables locales:
Definidas en un mtodo y llamadas: locales,
automticas, temporales, de pila.
Variables creadas cuando el mtodo se ejecuta y
destruidas al salir del mtodo.
Deben inicializarse antes de ser usadas para evitar
errores de compilacin.

47
Ejemplo de contexto en variables

EjemploContexto.java
public class EjemploContexto{
private int i=1;
PruebaContextos.java
public void primerMetodo(){
int i=4, j=5;
public class PruebaContextos{
this.i = i+j;
public static void main(String[] args){
segundoMetodo(7);
EjemploContexto contexto =
}//primerMetodo()
new EjemploContexto();
contexto.primerMetodo();
public void segundoMetodo(int i){
}//main
int j=8;
}/*class PruebaContextos*/
this.i=i+j;
}//segundoMetodo()
}/*class EjemploContexto*/
48
Inicializacin de variables

Variable Valor
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0D
char \u0000
boolean false
Todo tipo referencia null
49
Operadores
Los operadores realizan algunas funciones en uno o dos operandos.
3 + 4

Operador
Los operadores que requieren un operador se llaman operadores unarios. Por
ejemplo, ++ es un operador unario que incrementa el valor su operando en
uno.
Los operadores que requieren dos operandos se llaman operadores
binarios. El operador = es un operador binario que asigna un valor del
operando derecho al operando izquierdo.

Los operadores unarios en Java pueden utilizar la notacin de prefijo o


de sufijo. La notacin de prefijo significa que el operador aparece antes
de su operando.

50
Operadores
La notacin de sufijo significa que el operador aparece despus de
su operando:
operando operador
a++;

Todos los operadores binarios de Java tienen la misma notacin,


es decir aparecen entre los dos operandos:
op1 operator op2
a+b
Existen tres tipos de operadores:

Operadores Aritmticos
Operadores relacionales
Operadores de Desplazamiento
51
Operadores Aritmticos
Operador Uso Descripcin

+ op1 + op2 Suma op1 y op2

- op1 - op2 Resta op2 de op1

* op1 * op2 Multiplica op1 y op2

/ op1 / op2 Divide op1 por op2

Obtiene el resto de dividir op1 por


% op1 % op2
op2

Nota: El lenguaje Java extiende la definicin del operador +


para incluir la concatenacin de cadenas.

Los operadores + y - tienen versiones unarias que seleccionan


el signo del operando.
52
Operadores
Adems, existen dos operadores de atajos aritmticos, ++ que
incrementa en uno su operando, y -- que decrementa en uno el
valor de su operando.

Operador Uso Descripcin

Incrementa op en 1; evala el valor antes de


++ op ++
incrementar
Incrementa op en 1; evala el valor despus de
++ ++ op
incrementar
Decrementa op en 1; evala el valor antes de
-- op --
decrementar
Decrementa op en 1; evala el valor despus de
-- -- op decrementar

53
Operadores Relacionales y Condicionales
Los valores relacionales comparan dos valores y determinan la
relacin entre ellos. Por ejemplo, != devuelve true si los dos
operandos son distintos.

Operador Uso Devuelve true si

> op1 > op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2

< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2

== op1 == op2 op1 y op2 son iguales

!= op1 != op2 op1 y op2 son distintos

54
Operadores condicionales
Operador Uso Devuelve true si

&& op1 && op2 op1 y op2 son verdaderos

|| op1 || op2 uno de los dos es verdadero

! ! op op es falso

Operadores de Desplazamiento
Los operadores de desplazamiento permiten realizar una manipualcin
de los bits de los datos.

55
Operadores
Operador Uso Equivale a

+= op1 += op2 op1 = op1 + op2

-= op1 -= op2 op1 = op1 - op2

*= op1 *= op2 op1 = op1 * op2

/= op1 /= op2 op1 = op1 / op2

%= op1 %= op2 op1 = op1 % op2

&= op1 &= op2 op1 = op1 & op2

|= op1 |= op2 op1 = op1 | op2

^= op1 ^= op2 op1 = op1 ^ op2

56
Operadores

Operadores por orden de precedencia igual


que en C C++

Separador . [] () ; ,

57
Operadores lgicos
Los de corto-circuito booleanos son:
&& - AND || - OR
Ejemplo de uso :

MiFecha f;
if ((f != null) && (f.dia > 31)) {
// hacer algo con f..}

58
Concatenacin de Strings con +
El operador +
Realiza concatenaciones de Strings
Produce un nuevo String
String grado = Dr.;
String nombre = Victor + +Larios;
String ttulo = grado + + nombre;
Uno de los argumentos debe ser un objeto String
Los Strings no objeto son convertidos automticamente

59
Cast
Si la informacin de tipo por referencia es perdida
en una asignacin, el programador debe confirmar
la asignacin con un cast de tipo
Asignar un long y un int requiere un cast explcito:

long granValor = 99L;


int cuadrado = granValor //error !! Falta cast
int cuadrado = (int)granValor; //ok
int cuadrado = 99L; //error !! Requiere cast..
int cuadrado = (int) 99L; //Ok, pero..
int cuadrado = 99; //Literal entera por default
60
Expresiones de cast y promocin

Las variables son automticamente promovidas a


una forma mas larga (int a long por ejemplo).
La expresin es de asignacin compatible si el tipo de
variable es por lo menos tan larga como el tipo de
expresin (mismo nmero de bits)
long valorGrande = 6; // 6 es un valor entero, Ok
int valorPeque= 99L; //99L es grande, expesin ilegal

double z = 12.414F; //12.414F es float, OK


float z1 = 12.414; //12.414 es double, ilegal !!
61
Instrucciones de flujo if..else

La sintaxis de la instruccin
if (expresin booleana) {
enunciado bloque;
}
if (expresin booleana) {
enunciado bloque;
} else if (expresin booleana) {
enunciado bloque;
} else {
enunciado bloque;
}
62
Instrucciones de flujo if..else
public class ControlFlujo{
public static void main(String arg[]){
//Asigacion de variable
byte caliEstudi= 100;

//Flujo de control if
if( caliEstudi >= 60)
System.out.println("Aprobado " + caliEstudi);
}//main
}//class

63
Instrucciones de flujo if..else
//Flujo de control if
if( caliEstudi >= 60){
System.out.println("Aprobado " + caliEstudi);
}else{
System.out.println("Reprobado!! " + caliEstudi); }//else

64
Instrucciones de flujo
if..else anidado
//if else anidado
if(caliEstudi >= 90)
System.out.println("A " + caliEstudi);
else
if(caliEstudi >= 80)
System.out.println("B " + caliEstudi);
else
if(caliEstudi >= 70)
System.out.println("C " + caliEstudi); else
if(caliEstudi >= 60)
System.out.println("D " + caliEstudi); else
System.out.println("F Reprobado!! " + caliEstudi);

65
Instrucciones de flujo

La sintaxis de la instruccin swich


switch (expr1) {
case constant2:
instrucciones;
break;
case constant3:
instrucciones;
break;
default:
instrucciones;
break;
} 66
Instrucciones de flujo swich
Ejemplo:
switch (modeloAuto) { Tipos datos para swich
case DELUJO:
ponAireAcondicionado();
ponRadi0(); Permitidos:
ponRuedas();
ponMaquina();
Int
break;
case ESTANDARD; Promover a int:
ponRadio();
ponRuedas(); byte
ponMaquina();
break; short
default:
ponRuedas(); char
ponMaquina();
} No permitidos:
String, float, long

67
Instrucciones de flujo swich
public class SwitchTemporada{
public static void main(String arg[]){
int mes=4; case 6:
case 7:
String estacion;
case 8:
switch(mes){
estacion = "Verano";
case 12: break;
case 1: case 9:
case 2: case 10:
estacion = "Invierno"; case 11:
break; estacion = "Otoo";
case 3: break;
case 4: default:
case 5: estacion = "Mes desconocido";
estacion ="Primavera"; }//fin switch
break; System.out.println("Abril esta en " + estacion + ".");
}//main
}//class

68
Instrucciones de lazo

El lazo for

for (declara e inicializa var; condicin finalizar; incrementa var){


instruccin bloque;
}

Ejemplo:
for (int i = 0; i < 10; i++){
System.out.println(Ya terminaste?);
}
System.out.println(Terminado!);
69
Programa que lea N nmeros, calcule y escriba
la suma de los pares y el producto de los
impares.

70
Hacer un diagrama de flujo y pseudocdigo
de la suma y el promedio de los N nmeros
pares empezando de un valor inicial M, tanto
N como M deben ser ingresado por teclado?

71

También podría gustarte