Está en la página 1de 40

ICI3241 Programación Avanzada

INF3241 Programación Orientada a Objetos

Java: Introducción y una Aplicación Simple

Claudio Cubillos
Material original del Prof. Franco Guidi Polanco
Escuela de Ingeniería Industrial-PUCV
Sección 1

Generalidades de Java
¿Qué es JAVA?

Java es:
 un lenguaje de programación orientado a objetos;
y
 una plataforma de ejecución para programas
escritos en lenguaje Java

Java fue desarrollado por un equipo de


investigadores de SUN Microsystems.

3
¿Para qué sirve JAVA?

Java permite:

 Construir aplicaciones: programas computacionales


que apoyan el trabajo o resuelven problemas
específicos de usuarios (funcionan stand-alone).

 Construir applets: programas de menor envergadura


que se ejecutan al momento de cargar una página
WEB (son ejecutados por un browser).

Ejemplo de applet:
http://java.sun.com/applets/jdk/1.4/demo/applets/DrawTest/example1.html

4
Desarrollo y ejecución de aplicaciones en otros
lenguajes

Compilador 111000 1
1110001000111111111
para 00011101111011010
Windows

Program Hola;
begin Compilador 0000110101100 00111
00011100010001000
i :=1; para 0001110

writeln( i ) Linux
end.

Código fuente

Compilador
11100000101100 00111
00000101000
para 0001111110111111010

Solaris

Código objeto
5
Desarrollo y ejecución de aplicaciones en JAVA

Compilador Intérprete
Java Java
Windows Windows
111000 1
1110001000111111111
00011101111011010

public class
Hola { Intérprete
public static Compilador 1111000011
110000 Java
... Java 0000111100
Linux
i=1; Linux 001111
System.out.. 0000110101100 00111
00011100010001000
}
}
Bytecode 0001110

Código fuente
Compilador Intérprete
Java Java
Solaris Solaris
11100000101100 00111
00000101000
0001111110111111010

6
Intérprete Java: Java Virtual Machine (JVM)

101001010
Bytecode 001001001

JVM Windows JVM Linux JVM Solaris


101011 001010 111111
1 11 1011 1 1101
1 011 1001
0 1 1

7
Componentes de Java

Java se compone de:


 Compilador (Java-compiler)
 Intérprete (Java)
 Biblioteca de clases (Java API o Application
Programmer Interface)
 Utilitarios de desarrollo (para debug, documentación,
etc.)

Lo anterior se encuentra en el SDK (Software


Development Kit) distribuido por SUN-
Microsystems

8
Java en distintos tamaños

J2ME: Java 2
Micro Edition
J2SE: Java 2
Standard Edition

J2EE: Java 2
Enterprise Edition
9
Sección 2

Elementos de una aplicación simple en


Java
¿Cómo es una aplicación en Java?

El programa Hola Mundo:

Código fuente public class Saluda{


public static void main (String[] arg) {
System.out.println( “hello world” );
}
}

Compilación c:\>javac Saluda.java

c:\>

Ejecución c:\>java Saluda


hello world

c:\>

11
Desarrollo y ejecución e aplicación en Java
public class Saluda{
public static void main (String[] arg) {
Código System.out.println( “hello world” ); Saluda.java
fuente }
}

Compilador Java

Bytecode 101001010 Saluda.class


001001001

JVM Windows JVM Linux JVM Solaris


101011 001010 111111
1 11 1011 1 1101
1 011 1001
0 hello 1 hello 1 hello
world world world

12
Tipos de datos en Java

Los tipos de datos utilizados por programas en


Java se clasifican en dos categorías:

 Primitivos: sirven para definir variables que guardan


valores numéricos, lógicos y caracteres unitarios.

 Clases e interfaces: sirven para definir variables que


almacenan tipos de datos estructurados y las funciones
asociadas.

13
Tipos de datos primitivos

Java soporta los siguientes tipos de datos


primitivos:

 Entero
 Punto flotante
 Lógico
 Caracter

14
Tipos de datos primitivos (cont.)

Familia de datos enteros: byte, short, int y long.

Tipo Almacena Rango

byte Entero de 8 bit -128 hasta 127

short Entero de 16 bit -32.768 hasta 32.767


int Entero de 32 bit -2.147.483.648 hasta 2.147.483.647
-9.223.372.036.854.755.808 hasta
long Entero de 64 bit
9.223.372.036.854.755.807

15
Tipos de datos primitivos (cont.)

Familia de datos punto flotante: float y double.

Tipo Almacena Rango


float Punto flotante 32 bit 7 dígitos significativos (10-46, 1038)
double Punto flotante 64 bit 15 dígitos significativos (10-324, 10308)

16
Tipos de datos primitivos (cont.)

Tipo caracter: char.

Tipo Almacena Rango


char Carácter Unicode

Tipo lógico: boolean.

Tipo Almacena Rango

boolean Lógico false y true

17
Tipo de dato String

El String es un tipo de dato que permite trabajar


con cadenas de caracteres, por ejemplo:

“Hola mundo”, “Mario Mora”, “12/10/99”, “A”, “”.

Es una clase, no un tipo primitivo, pero se utiliza


en forma muy similar a estos últimos.

18
Operadores básicos para tipos primitivos

Operador de asignación:
=

Operadores numéricos:

 Binarios:
+ (suma), - (resta), * (multiplicación), / (división),
% (módulo o resto de la división entera)

 Unarios:
++ (autoincremento), -- (autodecremento)

19
Operadores básicos para tipos primitivos (cont.)

Operadores relacionales:
== (igual a)
!= (distinto de)
< (menor que), <= (menor o igual que),
> (mayor que), >= (mayor o igual que).

Operadores lógicos:
&& (AND)
|| (OR)
! (NOT)

20
Estructuras de control

Decisión
 Simple:  Compleja:

if ( condición ) if ( condición ) {
instrucción instrucción 1-1
instrucción 1-2
... }
if ( condición ) else {
instrucción 1 instrucción 2-1
else instrucción 2-2
instrucción 2 ... }

21
Estructuras de control (cont.)

Iteración
 Mientras - repetir:  Hacer - mientras:
do
while ( condición )
instrucción
instrucción
while ( condición )

while ( condición ) { do {
instrucción 1 instrucción 1
instrucción 2 instrucción 2
... ...
} } while ( condición )

22
Comentarios y documentación

 Se pueden incluir comentarios en el código usando


los siguientes marcadores:
// comentario hasta fin de línea
/* comentario
de múltiples líneas
*/
/** comentario de documentación
@author
@exception
@see
@param
@return
@version
*/
23
Identificadores

JAVA es sensible a mayúsculas y minúsculas.


Es decir, JAVA considera distinto Nombre y nombre

Un identificador válido consiste en una combinación


de de letras, dígitos y el carácter underscore. No
puede comenzar por un dígito.

Ejemplo:
- Válidos: edad, nota_Alumno, _peso, estadoSalud
- No válidos: 1ero, km/hora, Alumno(s), peso total

24
Declaración de variables

 Una variable se declara según el formato:


tipo identificador [=valor] [, identificador [ = valor ] ]
Por ejemplo: int a, b, c
double peso = 7.05
char letra = ‘T’
byte edad = 20, veces = 3

 Convención: el identificador de una variable de tipo


primitivo comenzará en minúsculas.
Por ejemplo: edad, edadAlumno, estadoCivil, esElUltimo

25
Algunos métodos (funciones) de utilidad

Despliegue de datos (“escribir”):


System.out.print()
System.out.println()

Por ejemplo:
System.out.println( “Hola” )
System.out.println( “Hola ” + nombre )

26
Algunos métodos (funciones) de utilidad (cont.)

Convertir de String a número :


Byte.parseByte()
Short.parseShort()
Integer.parseInt()
Float.parseFloat()
Double.parseDouble()

Por ejemplo:
x = Integer.parseInt( “50” )
y = Integer.parseInt( dato ) + 40

27
Estructura de una aplicación simple

/** Definición
Ejemplo de una aplicación de la
*/ aplicación (clase)
public class IdentificadorClase {
public static void main (String[ ] idArreglo ) {

...

} // Fin método main


} // Fin clase

Método main

28
Ejemplo: programa no interactivo

/**
Programa ejemplo para cálculo del Factorial de un número específico.
@author Franco Guidi
*/
public class Factorial1 {
Identificador
public static void main( String arg[] ) {de la clase (programa)

int número, i=1, fact=1;


número = 3;
while( i <= número ) { Identificadores
fact = fact * i; Método main de variables
i++;
}
System.out.println( "El factorial de " + número + " es " + fact );

} // Fin método main

} // Fin clase

29
Estructura de la aplicación

/**
Programa ejemplo para cálculo del Factorial de un número específico.
@author Franco Guidi Clase
*/

public class Factorial1 {

public static void main( String arg[] ) {

int número, i=1, fact=1;


número = 3;
while( i <= número ) {
fact = fact * i;
i++;
}
System.out.println( "El factorial de " + número + " es " + fact );

} // Fin método main

} // Fin clase Método main


30
Valores literales

Son valores que aparecen explícitamente en


el código fuente. Por ejemplo:
‘S’ : tipo char
“S”, “Juan”, “100” : tipo String
150 : tipo int
150.0 : tipo double
150.0f : tipo float
0150: tipo int octal
0x150: tipo int hexadecimal

31
Valores literales

/**
Programa ejemplo para cálculo del Factorial de un número específico.
@author Franco Guidi
*/
literal
public class Factorial1 {

public static void main( String arg[] ) {

int número, i=1, fact=1;


literal
número = 3;
while( i <= número ) {
fact = fact * i; literal
literal i++;
}
System.out.println( "El factorial de " + número + " es " + fact );

} // Fin método main

} // Fin clase
literal

32
Características generales de una aplicación simple

Se estructura como una clase que tiene un método


main.
El nombre de la clase debe ser el mismo que el del
archivo que la contiene.

La aplicación se compila invocando al compilador


Java junto con el nombre del archivo. Ejemplo:

c:\tmp>javac Factorial1.java

Compilador Archivo
33
Características generales de una aplicación simple

El programa puede ser invocado desde la línea de


comandos, invocando al intérprete Java junto con
el nombre de la aplicación. Ejemplo:

c:\tmp>java Factorial1

Intérprete Programa

34
Traspaso de datos por parámetro

El método main puede recibir parámetros desde la


línea de comandos del intérprete. Estos se
almacenan en las posiciones del arreglo de String
indicado en la declaración del método.

Parámetro

c:\tmp>java Factorial2 3

35
Traspaso de datos por parámetro

 Un arreglo es una colección de datos de un mismo tipo,


referenciada por un nombre. Cada dato ocupa una posición
dentro de la colección. La cantidad total de posiciones es
fija, y son accesibles por medio de un subíndice, que se
inicia en cero (0).
 Ejemplo: un arreglo de Strings llamado textos, de largo 4:

textos
“hola” “23” “luis” “2rwr”
0 1 2 3
textos[0] contiene “hola”
textos[1] contiene “23”
textos[4] se encuentra indefinido (error al tratar de acceder)

36
Ejemplo: programa que acepta datos por
parámetro
/**
Programa ejemplo para cálculo del Factorial de un número específico,
acepta el número proporcionado por parámetro.
@author Franco Guidi
*/
public class Factorial2 {

public static void main( String arg[] ) {

int número, i=1, fact=1;


número = Integer.parseInt( arg[0] );
while( i <= número ) {
fact = fact * i;
i++;
}
System.out.println( "El factorial de " + número + " es " + fact );

} // Fin método main

} // Fin clase

37
Consideraciones importantes

Java requiere la declaración de variables antes de


que sean utilizadas. El tipo de una variable no
puede ser modificado. Se dice que es un lenguaje
fuertemente “tipificado”.

Java distingue entre mayúsculas y minúsculas.

Las expresiones matemáticas se evalúan con


precedencia de * y / sobre + y -.

38
Características generales de una aplicación simple
(cont.)
 Las instrucciones se organizan de acuerdo con las
estructuras de control:
 secuencia
 decisión : if( cond ) ... else ...
 Iteración: do ... while( cond ) o while( cond ) ...

 Las instrucciones se separan mediante un punto y coma


( ; ).

 Los bloques son instrucciones agrupadas mediante


paréntesis de llave ( { y } ). Se utilizan en decisiones e
iteraciones, y no llevan punto y coma al final (después
de la llave de cierre).

39
Recomendaciones generales

Documentar los programas.

Adoptar convención para definición de


identificadores:

 Variables: primeraLetraEnMinúscula
 Clases: PrimeraLetraEnMayúscula
 Métodos: primeraLetraEnMinúscula

40

También podría gustarte