SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
Laboratorio de Cómputo de Ingeniería                             Curso de Java Básico


Capítulo 1 - Java
                                                  ¿Qué es Java?
Hacia 1990, James Gosling, quien trabaja para Sun Microsystems, fue el encargado de crear programas para
controlar aparatos electrónicos domésticos. Originalmente Gosling y su equipo empezaron el diseño de su
software usando C++, debido a su orientación a objetos. Sin embargo, se dieron cuenta que C++ no satisfacía
los proyectos que se tenían en mente; encontraron dificultades con aspectos complicados de C++ como la
herencia múltiple de clases, errores de programación (bugs) relacionados con huecos de memoria. De esta
manera Gosling decidió que tenía que empezar por escribir un lenguaje simplificado que le evitara todos los
problemas que se encontró con C++.

Aunque a Gosling no le importó la complejidad de lenguajes como C++, tomo la sintaxis básica y la
orientación a objetos del lenguaje. Cuando terminó el nuevo lenguaje lo llamó Oak (se cuenta que el nombre
le vino a Gosling mientras veía un roble por la ventana de su oficina.)

Oak se uso por primera vez en un proyecto llamado Proyecto Green, donde el equipo de desarrollo intentó
diseñar un sistema de control para usar dentro del hogar. Este sistema de control permitiría al usuario
manipular distintos dispositivos, como televisiones, video caseteras, luces caseras y teléfonos, todo desde una
computadora de mano llamada *7 (Star Seven). El sistema *7 incluía una pantalla sensible para que el dueño
seleccionara y controlara estos dispositivos.

La pantalla del *7 tenía diversas figuras, entre las que se encontraba Duke (la actual mascota de Java). Duke
ha sido incluido en muchos ejemplos de applets en la página de Sun Microsystems.

El siguiente paso para Oak fue el proyecto Video En Demanda (VOD), en el que el lenguaje era usado como
la base para el software que controlaría un sistema de televisión interactivo. Aunque ni *7 ni el proyecto
VOD concluyeron en productos actuales, le dieron a Oak una oportunidad de crecer y madurar. Con el tiempo
Sun Microsystems descubrió que el nombre Oak ya había sido usado y le cambió el nombre por Java, y vio
nacer un lenguaje poderoso y sencillo.

Java es un lenguaje independiente de la plataforma, lo que significa que los programas desarrollados en Java
correrán en cualquier sistema sin cambios. Esta independencia de plataforma se logró usando un formato
especial para los programas compilados en Java. Este formato de archivo, llamado "byte-code" puede ser
leído y ejecutado por cualquier computadora que tenga un intérprete de Java. Este intérprete de Java, por
supuesto, debe ser escrito especialmente para el sistema en el que correrá.

En 1993, después de que Internet se transformó de un ambiente basado en texto a un ambiente gráfico, el
equipo de Java se dio cuenta de que el lenguaje sería perfecto para la programación en el Web. Así nació la
idea de los applets, que son pequeños programas que pueden ser incluidos en páginas de Web, y también
surgió la idea de escribir un navegador de Web que demostraría el poder del lenguaje, este navegador es el
HotJava.

Finalmente, hacia mayo de 1995, Sun Microsystems anunció oficialmente a Java. El nuevo lenguaje fue
aceptado como una poderosa herramienta para el desarrollo de aplicaciones para Internet. Netscape
Communications, el creador del navegador Netscape Navigator, dio soporte a Java desde su versión 2.0.
Otros desarrolladores de software también incluyeron soporte para Java, incluyendo al Internet Explorer 3 de
Microsoft. Actualmente, Java puede correr en máquinas con procesadores SPARC, Intel, Digital.

De acuerdo con Sun Microsystems, Java es "simple, orientado a objetos, tipificado estáticamente, compilado,
independiente de arquitectura, multi-procesos, con recolector de basura, robusto, seguro y ampliable."




Capacitación                                                                                                 1
Laboratorio de Cómputo de Ingeniería                            Curso de Java Básico

Es simple porque los desarrolladores en Java deliberadamente dejan muchas de las características
innecesarias de otros lenguajes de programación de alto nivel. Por ejemplo, Java no soporta aritmética de
apuntadores, cast de tipos implícito, estructuras o uniones, sobrecarga de operadores, plantillas, archivos de
cabecera o múltiple herencia.

Es orientado a objetos, porque como C++, Java usa clases para organizar el código en módulos. En tiempo de
ejecución, un programa crea objetos a partir de las clases. Las clases en Java pueden heredar de otras clases,
pero la múltiple herencia, donde una clase hereda métodos y datos de varias clases, no está permitida.

Es tipificado estáticamente porque todos los objetos usados en un programa deben ser declarados antes de
que puedan ser usados. Esto permite al compilador de Java localizar y reportar conflictos con los tipos de
datos.

Es compilado porque antes de que se pueda correr un programa, primero tiene que ser compilado por el
compilador de Java. El resultado de la compilación es el archivo "byte-code", que, similar a un archivo con
código máquina, puede ser ejecutado bajo cualquier sistema operativo que tenga un intérprete de Java. Este
intérprete lee el archivo byte-code y traduce los comandos en comandos de lenguaje máquina que pueden ser
ejecutados directamente por la computadora.

Es multiprocesos porque los programas de Java pueden contener múltiples procesos en ejecución, lo que
permite a los programas manejar varias tareas simultáneamente. Por ejemplo, un programa multiprocesos
puede definir una imagen (render) en un proceso mientras continua aceptando entrada del teclado en el
proceso principal. Todas las aplicaciones tienen al menos un proceso (llamado thread) que representa la
ejecución del programa.

Tiene recolector de basura, ya que los programas de Java no se encargan de liberar de memoria los objetos,
esto es una tarea del administrador de memoria y el recolector de basura.

Es robusto porque el intérprete de Java revisa todos los accesos al sistema dentro de un programa, por esto,
los programas desarrollados en Java no pueden tirar el sistema. Esto es, cuando un error serio es encontrado,
los programas en Java crean una excepción. Esta excepción puede ser capturada y manejada por el programa
sin el riesgo de bloquear el sistema.

Es seguro porque el compilador no sólo verifica todos los accesos a memoria, sino que también se asegura
que no entren virus en un applet en ejecución. Ya que los apuntadores no son soportados por el lenguaje, los
programas no pueden acceder a áreas del sistema a las que no tienen autorización.

Es ampliable porque los programas en Java soportan métodos nativos, que son funciones escritas en otros
lenguajes, generalmente C++. Este soporte a métodos nativos permite a los programadores escribir funciones
que pueden ser ejecutadas más rápido que las funciones equivalentes escritas en Java. Los métodos nativos
son ligados a los programas en forma dinámica, es decir, son asociados con los programas en tiempo de
ejecución.

Ventajas de Java.                                    Desventajas de Java.
Es seguro.                                           Es 10 a 20 veces más lento en ejecución que C++.
Se aprende con facilidad.                            Soportado por Microsoft.
Es orientado a objetos.
No bloquea el sistema.
Aplicaciones para comunicación en red.
No tiene aritmética de apuntadores.
Es independiente de la plataforma.
Soportado por Microsoft.




Capacitación                                                                                                2
Laboratorio de Cómputo de Ingeniería                          Curso de Java Básico

                                              Introducción a Java
Java tiene las siguientes características:
�� La Máquina Virtual de Java (JVM)
�� Recolección de basura
�� Seguridad en el código

La especificación de la Máquina Virtual de Java define a ésta como:
"Una máquina imaginaria que es implantada por la emulación de software en una máquina real. El código
para la JVM es almacenado en archivos .class, cada uno contiene código para al menos una clase pública".
Esta especificación permite a los programas Java ser independientes de la plataforma porque la compilación
es hecha por una máquina genérica. Al intérprete de Java de cada plataforma de hardware le corresponde
asegurar la ejecución del código compilado para la JVM.

Muchos lenguajes de programación permiten el alojamiento dinámico de memoria en tiempo de ejecución.
Este proceso varía en la sintaxis de los lenguajes, pero siempre hay un valor de retorno de un apuntador a la
dirección de inicio del bloque de memoria. Una vez que la memoria ocupada ya no se necesita, el programa o
el ambiente de ejecución debería liberar la memoria para prevenir que el programa corra sin memoria
disponible.

En C y C++ (y otros lenguajes), el programador es responsable de liberar la memoria. Esto puede ser tedioso,
porque no se sabe con anticipación cuando se va a liberar memoria. Los programas que no liberan memoria
pueden bloquear el sistema cuando no queda memoria disponible. Java quita esa responsabilidad de liberar
memoria explícitamente integrando un proceso a nivel de sistema que sigue cada alojamiento de memoria y
mantiene una cuenta del número de referencias a cada apuntador a memoria. Durante los intervalos de tiempo
de ocio en la JVM, el proceso de recolección de basura revisa si hay apuntadores a memoria donde el número
de referencias es igual a cero. Si hay algunos, el bloque de memoria marcado por el recolector es liberado.

Una vez compilados los programas en Java, en el momento de ejecución se lleva a cabo una tarea de carga,
revisión y ejecución. La carga consta de cargar en memoria el archivo byte-code, puede cargarse desde la
máquina local o remotamente a través de la red. La revisión consta de verificar que no haya: violaciones de
acceso, operaciones que conduzcan a "overflow" o "underflow", tipos de parámetros incorrectos,
conversiones de datos incorrectas, acceso a objetos sin inicializar, entre otras funciones. En el proceso de
ejecución ya se corren las instrucciones del programa.


                                                  Comentarios
Los comentarios en Java se pueden escribir en tres formas:

// comentario de una línea
/* comentario de una o más líneas */
/** comentario para documentación */

Los comentarios de documentación se colocan justo antes de la variable o función. Estos sirven para el
programa javadoc, el cual genera archivos html, y sirven como una descripción del tópico declarado.




                                                 Identificadores



Capacitación                                                                                               3
Laboratorio de Cómputo de Ingeniería                            Curso de Java Básico

En Java, un identificador empieza con una letra, el carácter de subraya o el signo $. Los demás caracteres
pueden contener dígitos. Todos los identificadores son sensibles a mayúsculas / minúsculas.
Ejemplos de identificadores validos:

variable
nombreUsuario
Nombre_Usuario
_numero
$cadena

Los últimos tres ejemplos son muy poco usados en la generalidad de los programas. Los identificadores
pueden contener palabras reservadas, pero no pueden ser palabras reservadas; por ejemplo, es valido integer,
pero no int.


                                                Palabras reservadas
abstract          do                implements        private            throw
boolean           double            import            protected          throws
break             else              instanceof        public             transient
byte              extends           int               return             true
case              false             interface         short              try
catch             final             long              static             void
char              finally           native            super              volatile
class             float             new               switch             while
continue          for               null              synchronized
default           if                package           this

Nota.- En Java, true, false y null se escriben en minúsculas, al contrario que en C++.

No existe un operador sizeof; el tamaño y representación de todos los tipos es fija y no es dependiente de la
implantación.

Las palabras goto y const no se usan en Java.


                                                   Tipos de datos
Java define ocho tipos de datos primitivos y uno especial. Se pueden agrupar en: lógicos, textuales, integrales
y de punto flotante.

El tipo de dato boolean sólo tiene dos valores: false y true. En C/C++ se permite que valores numéricos sean
interpretados como valores lógicos, pero no es el caso de Java; sólo se permiten valores lógicos.

Los tipos de datos textuales son: char y String. Los caracteres se representan por el tipo de dato char, usando
un número de 16 bits sin signo con un rango de cero a     216�1 . Los caracteres se encierran entre apóstrofes.




'a'               Letra a
't'              Un tabulador
'u????'          Un carácter especifico, ???? es reemplazado con cuatro dígitos hexadecimales.


Capacitación                                                                                                      4
Laboratorio de Cómputo de Ingeniería                             Curso de Java Básico


El tipo String, que no es primitivo, es usado para representar secuencias de caracteres. Una cadena de
caracteres se encierra entre comillas.

"Esto es un mensaje"

Los tipos integrales son: byte, short, int y long. Todos son números con signo. Los números se pueden
representar en forma decimal, octal o hexadecimal.

2                 Valor decimal es dos
077               El cero que inicia indica un valor octal
0xBC27            0x indica un valor hexadecimal

Para especificar un valor long se debe poner L al final del número. Se puede usar l o L, pero en minúscula se
puede confundir con el número 1 en algunos casos.

2L                Valor decimal dos, como un valor largo
077L              El cero que inicia indica un valor octal
0xBC27L           0x indica un valor hexadecimal

A continuación se presenta una tabla con los cuatro tipos de datos. La representación del rango es definida
por la especificación del lenguaje como un complemento a dos y es independiente de la plataforma.

                  Tamaño            Tipo               Rango
                  8 bits            byte               � 2 7 ... 2 7 �1
                  16 bits           short              � 215 ... 215�1
                  32 bits           int                � 2 31 ... 2 31�1
                  64 bits           long               � 2 63 ... 2 63�1

Los tipos de dato para número de punto flotante son: float y double. Un valor en punto flotante puede incluir
el punto decimal, una parte exponente (letra E), o es seguido por la letra F (float) o la letra D (double).

3.14              Valor de punto flotante
6.02E23           Valor de punto flotante muy grande
2.718F            Valor sencillo de tipo float
123.4E+306D       Valor de punto flotante muy grande de tipo double

                  Tamaño            Tipo
                  32 bits           float
                  64 bits           double

En Java, todos los valores de punto flotante son double, a menos que se indique explícitamente que sean float.
Por lo tanto, en los ejemplos anteriores:

2.718F            debe llevar la letra F para mantenerlo como float
123.4E+306D       la D es redundante

                                              Modificadores
Dentro de las palabras reservadas, Java utiliza las siguientes para modificar el acceso a una variable, clase o
función y se colocan al inicio de la declaración: public, protected, default, private.



Capacitación                                                                                                 5
Laboratorio de Cómputo de Ingeniería                             Curso de Java Básico

El modificador public da acceso a cualquier objeto externo.
public int numero; // cualquier objeto puede accesar a esta variable

El modificador protected da acceso a objetos que son parte del mismo paquete, y las subclases. (Más adelante
se explica el concepto de paquete)


El modificador default da acceso a objetos que son parte del mismo paquete. Sin embargo, en los programas
no se especifica el modificador porque no hay una palabra para ello.
int numero; // acceso default

El modificador private da acceso únicamente a la clase que lo contiene.
private int numero; // únicamente lo puede accesar la clase


                                      Convenciones en la programación
Clases.- Los nombres de las clases deberían ser sustantivos, utilizando mayúsculas para la primera letra y
minúsculas para las restantes, y se pueden mezclar varios sustantivos.

class CuentaBancaria

Interfaces.- Los nombres de las interfaces deberían tener la primera letra mayúscula, como en los nombres de
clase.

interface Cuenta

Métodos.- Los nombres de los métodos deberían ser verbos, todo el verbo en minúscula. Se pueden agregar
sustantivos con la primera letra en mayúscula. Evitar el uso de subrayas.

void revisarCuenta()

Constantes.- Las constantes de tipos de datos primitivos deberían escribirse completamente en mayúsculas y
separadas las palabras por subrayas. Las constantes de objeto pueden combinar mayúsculas y minúsculas

final int MAX_CREDITO

Variables.- Todas las variables deberían ser en minúsculas, y si se agregan palabras se separarán con una letra
mayúscula. Evitar el uso del signo $.

primerUsuario

Las variables deben tener significado e indicar su uso. Las variables de una letra deberían evitarse, excepto
las que suelen usarse en ciclos (x, y, i, j) para controlarlo.

Otras convenciones de la programación incluyen el uso de llaves ({}) alrededor de un bloque de
instrucciones, incluso cuando se trate de una sola instrucción, ya que esto ayuda en el mantenimiento del
programa.
if(condición)
{
  bloque
}

El espaciado ayuda en la comprensión del programa. Se sugiere escribir una instrucción por línea y usar
indentación de uno o dos espacios.


Capacitación                                                                                                 6
Laboratorio de Cómputo de Ingeniería                            Curso de Java Básico


Los comentarios también ayudan en la comprensión y mantenimiento del programa al dar una descripción
clara de lo que hace cada función y el uso de las variables.

Ejemplo:

// primer programa en Java
public class HelloWorld
{
  public static void main(String argv[])
  {
    System.out.println("Hello world!");
  }
}

En detalle:
// primer programa en Java

La primera línea es un comentario.

public class HelloWorld
{

Las siguientes dos líneas son la declaración de la clase, que al momento de ser compilado el programa,
generará un archivo .class. Es importante que el nombre de la clase sea el mismo que el nombre del archivo:
si la clase se va a llamar HelloWorld, el archivo se debe llamar HelloWorld.java.

public static void main(String argv[])
{

En las siguientes dos líneas se declara el inicio del programa. Para que el intérprete de Java pueda ejecutar el
programa debe tener la misma sintaxis (excepto para el nombre del parámetro de main). Se declara public
para que lo pueda accesar el intérprete de Java. Se declara static porque no se ha creado algún objeto y no se
crea una instancia. Se declara void porque no se regresa valor alguno. En este ejemplo no se va a esperar
parámetros de la línea de comandos. En argv[] se guardan los parámetros y la primera posición contiene el
primer parámetro, no el nombre del programa:
argv[0] parametro1
argv[1] parametro2

System.out.println("Hello world!");

La siguiente línea muestra el uso de una clase y un método que imprime en la salida estándar (la pantalla) un
mensaje.

 }
}



Finalmente se termina el bloque del método main y la declaración de la clase. Una vez que se tiene el código
fuente en el archivo HelloWorld.java se usa el compilador de Java de la siguiente manera:

javac HelloWorld.java

Si el compilador no regresa mensajes de error, se habrá creado un nuevo archivo HelloWorld.class en el
mismo directorio que el código fuente.


Capacitación                                                                                                  7
Laboratorio de Cómputo de Ingeniería                            Curso de Java Básico

Después de la compilación, se puede ejecutar el programa y ver el resultado usando el intérprete de Java:

java HelloWorld

Modifica el programa anterior para dejar errores y ver lo que presenta el compilador.




Capacitación                                                                                                8
Laboratorio de Cómputo de Ingeniería                         Curso de Java Básico

                                           Laboratorio 1
Modificar el programa de “HelloWorld.java” para que reciba un nombre por medio de un parámetro en la
línea de comandos y que lo imprima en forma de saludo. Por ejemplo:

C:>java Hello JoseLuis

Esto deberá desplegar una salida:

Gusto en conocerte JoseLuis

*Nota: Recuerde que los parámetros que son recibidos en la línea de comandos se guardan en el arreglo de
tipo String (comúnmente llamada argv[ ] ) del método main. Trate de utilizar la propiedad “length” del ya
mencionado arreglo para controlar el número de parámetros recibidos.

Ver Cap1Hello.java




Capacitación                                                                                           9
Laboratorio de Cómputo de Ingeniería                            Curso de Java Básico


Capítulo 2 - El lenguaje
                                          Inicialización de variables
Java no permite que una variable tenga un valor indefinido. Cuando un objeto es creado, sus variables son
inicializadas con los siguientes valores:

byte                      0
short                     0
int                       0
long                      0L
float                     0.0F
double                    0.0D
char                      'u0000' (NULO)
boolean                   false
todas las referencias     null

Si algún objeto hace referencia a algo con valor de null, creará una excepción (un error que es manejable).
Para evitar que las variables tengan valores indeseables, se debe asignárseles algún valor útil. El compilador
estudia el código para determinar que cada variable ha sido inicializada antes de su primer uso. Si el
compilador no puede determinar esto, entonces ocurre un error en tiempo de compilación.

public void calcula()
{
  int x = (int)(Math.random() * 100);
  int y;
  int z;
  if(x > 50)
  {
    y = 9;
  }
  z = y + x;
  // el posible uso antes de la inicialización de y creara un error de compilación
}



                                               Expresiones lógicas
Los operadores relacionales y lógicos regresan un valor boolean. En Java no existe conversión automática de
int a boolean, como en C++.

int i = 1;
if(i) // error en tiempo de compilación
if(i != 0) // correcto




                                        Operadores y su Precedencia


Capacitación                                                                                              10

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazo
 
Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores sheshar
 
Fundamentos u3 v1
Fundamentos u3 v1Fundamentos u3 v1
Fundamentos u3 v1
 
Java presentation
Java presentationJava presentation
Java presentation
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
Curso Java Inacap
Curso Java InacapCurso Java Inacap
Curso Java Inacap
 
java,conceptos basicos
java,conceptos basicosjava,conceptos basicos
java,conceptos basicos
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Qué es java
Qué es javaQué es java
Qué es java
 
Conceptos de programación orientada a objeto
Conceptos de programación orientada a objetoConceptos de programación orientada a objeto
Conceptos de programación orientada a objeto
 
Instituto Cristiano Encuentro
Instituto Cristiano EncuentroInstituto Cristiano Encuentro
Instituto Cristiano Encuentro
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
 
Manual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroManual.curso.de.java.desde.cero
Manual.curso.de.java.desde.cero
 

Destacado

Consejos Fio Seguridad Digital
Consejos Fio Seguridad DigitalConsejos Fio Seguridad Digital
Consejos Fio Seguridad DigitalAdri Porpo
 
Presentación foro 4 agosto eduardo diaz fa
Presentación foro 4 agosto eduardo diaz faPresentación foro 4 agosto eduardo diaz fa
Presentación foro 4 agosto eduardo diaz faRedprodepaz
 
Curso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevCurso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevjtk1
 
Laboratorio de Física
Laboratorio de Física Laboratorio de Física
Laboratorio de Física Angelica1996
 
RESUME 2016 - Craig Dippolito 9-20-16
RESUME 2016 - Craig Dippolito 9-20-16RESUME 2016 - Craig Dippolito 9-20-16
RESUME 2016 - Craig Dippolito 9-20-16Craig Dippolito
 
Lights on Campus Proposal
Lights on Campus ProposalLights on Campus Proposal
Lights on Campus ProposalKeshia Daniel
 
Brasil século xvi
Brasil   século xviBrasil   século xvi
Brasil século xviprojrp
 
Fotos extraordinarias
Fotos extraordinariasFotos extraordinarias
Fotos extraordinariasMargot Loaiza
 
Presentacion PDP Montes de María
Presentacion  PDP Montes de MaríaPresentacion  PDP Montes de María
Presentacion PDP Montes de MaríaRedprodepaz
 
Acesso, Inclusão, Preservação Ibict cinform 2013
Acesso, Inclusão, Preservação Ibict cinform 2013Acesso, Inclusão, Preservação Ibict cinform 2013
Acesso, Inclusão, Preservação Ibict cinform 2013Miguel Arellano
 
Convencion americana sobre derechos humanos
Convencion americana sobre derechos humanosConvencion americana sobre derechos humanos
Convencion americana sobre derechos humanoseipel
 
Brasil no es todo alegria
Brasil no es todo alegriaBrasil no es todo alegria
Brasil no es todo alegriaJunior de Mello
 
Moral decision making when values compete
Moral decision making when values competeMoral decision making when values compete
Moral decision making when values competejohnboy_philothea_net
 
Ministério de Musica de Queluz
Ministério de Musica de QueluzMinistério de Musica de Queluz
Ministério de Musica de QueluzMauro Viana
 
Ce carlos vargas and jorge murillo
Ce  carlos vargas and jorge murilloCe  carlos vargas and jorge murillo
Ce carlos vargas and jorge murilloCarlos Vargas Correa
 

Destacado (20)

Obreros en la Mies
Obreros en la MiesObreros en la Mies
Obreros en la Mies
 
Consejos Fio Seguridad Digital
Consejos Fio Seguridad DigitalConsejos Fio Seguridad Digital
Consejos Fio Seguridad Digital
 
Presentación foro 4 agosto eduardo diaz fa
Presentación foro 4 agosto eduardo diaz faPresentación foro 4 agosto eduardo diaz fa
Presentación foro 4 agosto eduardo diaz fa
 
Casa quito norte
Casa quito norteCasa quito norte
Casa quito norte
 
Curso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevCurso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prev
 
Laboratorio de Física
Laboratorio de Física Laboratorio de Física
Laboratorio de Física
 
RESUME 2016 - Craig Dippolito 9-20-16
RESUME 2016 - Craig Dippolito 9-20-16RESUME 2016 - Craig Dippolito 9-20-16
RESUME 2016 - Craig Dippolito 9-20-16
 
Lights on Campus Proposal
Lights on Campus ProposalLights on Campus Proposal
Lights on Campus Proposal
 
Brasil século xvi
Brasil   século xviBrasil   século xvi
Brasil século xvi
 
Fotos extraordinarias
Fotos extraordinariasFotos extraordinarias
Fotos extraordinarias
 
Presentacion PDP Montes de María
Presentacion  PDP Montes de MaríaPresentacion  PDP Montes de María
Presentacion PDP Montes de María
 
Acesso, Inclusão, Preservação Ibict cinform 2013
Acesso, Inclusão, Preservação Ibict cinform 2013Acesso, Inclusão, Preservação Ibict cinform 2013
Acesso, Inclusão, Preservação Ibict cinform 2013
 
Sentido de la vida
Sentido de la vidaSentido de la vida
Sentido de la vida
 
Convencion americana sobre derechos humanos
Convencion americana sobre derechos humanosConvencion americana sobre derechos humanos
Convencion americana sobre derechos humanos
 
Brasil no es todo alegria
Brasil no es todo alegriaBrasil no es todo alegria
Brasil no es todo alegria
 
Moral decision making when values compete
Moral decision making when values competeMoral decision making when values compete
Moral decision making when values compete
 
ChoicePols
ChoicePolsChoicePols
ChoicePols
 
Proyecto de vida
Proyecto de vida Proyecto de vida
Proyecto de vida
 
Ministério de Musica de Queluz
Ministério de Musica de QueluzMinistério de Musica de Queluz
Ministério de Musica de Queluz
 
Ce carlos vargas and jorge murillo
Ce  carlos vargas and jorge murilloCe  carlos vargas and jorge murillo
Ce carlos vargas and jorge murillo
 

Similar a Java kaime con

Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrolloDavid
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaFacultad de Ciencias y Sistemas
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
Mi Lenguaje de Programación Preferido
Mi Lenguaje de Programación PreferidoMi Lenguaje de Programación Preferido
Mi Lenguaje de Programación Preferidostylee4799
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragadoMaria
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragadoMaria
 
Java pre
Java preJava pre
Java prejtk1
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java prejtk1
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVANoralma Yanez
 
C1 intro java
C1 intro javaC1 intro java
C1 intro javaalenco
 
Clase2
Clase2Clase2
Clase2rilara
 

Similar a Java kaime con (20)

Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
Java
JavaJava
Java
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Mi Lenguaje de Programación Preferido
Mi Lenguaje de Programación PreferidoMi Lenguaje de Programación Preferido
Mi Lenguaje de Programación Preferido
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Java
JavaJava
Java
 
Java pre
Java preJava pre
Java pre
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
C1 intro java
C1 intro javaC1 intro java
C1 intro java
 
Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 
Clase2
Clase2Clase2
Clase2
 

Más de jtk1

Actividad modulo1
Actividad modulo1Actividad modulo1
Actividad modulo1jtk1
 
Java schaum pre
Java schaum preJava schaum pre
Java schaum prejtk1
 
Programar java 2pre
Programar java 2preProgramar java 2pre
Programar java 2prejtk1
 
Serlets java pre
Serlets java preSerlets java pre
Serlets java prejtk1
 
Portada java 2
Portada java 2Portada java 2
Portada java 2jtk1
 
Piensa en java per
Piensa en java perPiensa en java per
Piensa en java perjtk1
 
Lenguaje de programacion java prev
Lenguaje de programacion java prevLenguaje de programacion java prev
Lenguaje de programacion java prevjtk1
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conprejtk1
 
Java jedi prev
Java jedi prevJava jedi prev
Java jedi prevjtk1
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prevjtk1
 
Java ferca
Java fercaJava ferca
Java fercajtk1
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 prejtk1
 
Java angel estevan pre
Java angel estevan preJava angel estevan pre
Java angel estevan prejtk1
 
Java 3dpre
Java 3dpreJava 3dpre
Java 3dprejtk1
 
Java 2d
Java 2dJava 2d
Java 2djtk1
 
Guia de iniciación en java prev
Guia de iniciación en java prevGuia de iniciación en java prev
Guia de iniciación en java prevjtk1
 
Aprende java como si estuviera en primero pre
Aprende java como si estuviera en primero preAprende java como si estuviera en primero pre
Aprende java como si estuviera en primero prejtk1
 
52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprevjtk1
 
Serlets y jsp prev
Serlets y jsp prevSerlets y jsp prev
Serlets y jsp prevjtk1
 
Serlets y jsp pre
Serlets y jsp preSerlets y jsp pre
Serlets y jsp prejtk1
 

Más de jtk1 (20)

Actividad modulo1
Actividad modulo1Actividad modulo1
Actividad modulo1
 
Java schaum pre
Java schaum preJava schaum pre
Java schaum pre
 
Programar java 2pre
Programar java 2preProgramar java 2pre
Programar java 2pre
 
Serlets java pre
Serlets java preSerlets java pre
Serlets java pre
 
Portada java 2
Portada java 2Portada java 2
Portada java 2
 
Piensa en java per
Piensa en java perPiensa en java per
Piensa en java per
 
Lenguaje de programacion java prev
Lenguaje de programacion java prevLenguaje de programacion java prev
Lenguaje de programacion java prev
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java jedi prev
Java jedi prevJava jedi prev
Java jedi prev
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prev
 
Java ferca
Java fercaJava ferca
Java ferca
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 pre
 
Java angel estevan pre
Java angel estevan preJava angel estevan pre
Java angel estevan pre
 
Java 3dpre
Java 3dpreJava 3dpre
Java 3dpre
 
Java 2d
Java 2dJava 2d
Java 2d
 
Guia de iniciación en java prev
Guia de iniciación en java prevGuia de iniciación en java prev
Guia de iniciación en java prev
 
Aprende java como si estuviera en primero pre
Aprende java como si estuviera en primero preAprende java como si estuviera en primero pre
Aprende java como si estuviera en primero pre
 
52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev
 
Serlets y jsp prev
Serlets y jsp prevSerlets y jsp prev
Serlets y jsp prev
 
Serlets y jsp pre
Serlets y jsp preSerlets y jsp pre
Serlets y jsp pre
 

Java kaime con

  • 1. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Capítulo 1 - Java ¿Qué es Java? Hacia 1990, James Gosling, quien trabaja para Sun Microsystems, fue el encargado de crear programas para controlar aparatos electrónicos domésticos. Originalmente Gosling y su equipo empezaron el diseño de su software usando C++, debido a su orientación a objetos. Sin embargo, se dieron cuenta que C++ no satisfacía los proyectos que se tenían en mente; encontraron dificultades con aspectos complicados de C++ como la herencia múltiple de clases, errores de programación (bugs) relacionados con huecos de memoria. De esta manera Gosling decidió que tenía que empezar por escribir un lenguaje simplificado que le evitara todos los problemas que se encontró con C++. Aunque a Gosling no le importó la complejidad de lenguajes como C++, tomo la sintaxis básica y la orientación a objetos del lenguaje. Cuando terminó el nuevo lenguaje lo llamó Oak (se cuenta que el nombre le vino a Gosling mientras veía un roble por la ventana de su oficina.) Oak se uso por primera vez en un proyecto llamado Proyecto Green, donde el equipo de desarrollo intentó diseñar un sistema de control para usar dentro del hogar. Este sistema de control permitiría al usuario manipular distintos dispositivos, como televisiones, video caseteras, luces caseras y teléfonos, todo desde una computadora de mano llamada *7 (Star Seven). El sistema *7 incluía una pantalla sensible para que el dueño seleccionara y controlara estos dispositivos. La pantalla del *7 tenía diversas figuras, entre las que se encontraba Duke (la actual mascota de Java). Duke ha sido incluido en muchos ejemplos de applets en la página de Sun Microsystems. El siguiente paso para Oak fue el proyecto Video En Demanda (VOD), en el que el lenguaje era usado como la base para el software que controlaría un sistema de televisión interactivo. Aunque ni *7 ni el proyecto VOD concluyeron en productos actuales, le dieron a Oak una oportunidad de crecer y madurar. Con el tiempo Sun Microsystems descubrió que el nombre Oak ya había sido usado y le cambió el nombre por Java, y vio nacer un lenguaje poderoso y sencillo. Java es un lenguaje independiente de la plataforma, lo que significa que los programas desarrollados en Java correrán en cualquier sistema sin cambios. Esta independencia de plataforma se logró usando un formato especial para los programas compilados en Java. Este formato de archivo, llamado "byte-code" puede ser leído y ejecutado por cualquier computadora que tenga un intérprete de Java. Este intérprete de Java, por supuesto, debe ser escrito especialmente para el sistema en el que correrá. En 1993, después de que Internet se transformó de un ambiente basado en texto a un ambiente gráfico, el equipo de Java se dio cuenta de que el lenguaje sería perfecto para la programación en el Web. Así nació la idea de los applets, que son pequeños programas que pueden ser incluidos en páginas de Web, y también surgió la idea de escribir un navegador de Web que demostraría el poder del lenguaje, este navegador es el HotJava. Finalmente, hacia mayo de 1995, Sun Microsystems anunció oficialmente a Java. El nuevo lenguaje fue aceptado como una poderosa herramienta para el desarrollo de aplicaciones para Internet. Netscape Communications, el creador del navegador Netscape Navigator, dio soporte a Java desde su versión 2.0. Otros desarrolladores de software también incluyeron soporte para Java, incluyendo al Internet Explorer 3 de Microsoft. Actualmente, Java puede correr en máquinas con procesadores SPARC, Intel, Digital. De acuerdo con Sun Microsystems, Java es "simple, orientado a objetos, tipificado estáticamente, compilado, independiente de arquitectura, multi-procesos, con recolector de basura, robusto, seguro y ampliable." Capacitación 1
  • 2. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Es simple porque los desarrolladores en Java deliberadamente dejan muchas de las características innecesarias de otros lenguajes de programación de alto nivel. Por ejemplo, Java no soporta aritmética de apuntadores, cast de tipos implícito, estructuras o uniones, sobrecarga de operadores, plantillas, archivos de cabecera o múltiple herencia. Es orientado a objetos, porque como C++, Java usa clases para organizar el código en módulos. En tiempo de ejecución, un programa crea objetos a partir de las clases. Las clases en Java pueden heredar de otras clases, pero la múltiple herencia, donde una clase hereda métodos y datos de varias clases, no está permitida. Es tipificado estáticamente porque todos los objetos usados en un programa deben ser declarados antes de que puedan ser usados. Esto permite al compilador de Java localizar y reportar conflictos con los tipos de datos. Es compilado porque antes de que se pueda correr un programa, primero tiene que ser compilado por el compilador de Java. El resultado de la compilación es el archivo "byte-code", que, similar a un archivo con código máquina, puede ser ejecutado bajo cualquier sistema operativo que tenga un intérprete de Java. Este intérprete lee el archivo byte-code y traduce los comandos en comandos de lenguaje máquina que pueden ser ejecutados directamente por la computadora. Es multiprocesos porque los programas de Java pueden contener múltiples procesos en ejecución, lo que permite a los programas manejar varias tareas simultáneamente. Por ejemplo, un programa multiprocesos puede definir una imagen (render) en un proceso mientras continua aceptando entrada del teclado en el proceso principal. Todas las aplicaciones tienen al menos un proceso (llamado thread) que representa la ejecución del programa. Tiene recolector de basura, ya que los programas de Java no se encargan de liberar de memoria los objetos, esto es una tarea del administrador de memoria y el recolector de basura. Es robusto porque el intérprete de Java revisa todos los accesos al sistema dentro de un programa, por esto, los programas desarrollados en Java no pueden tirar el sistema. Esto es, cuando un error serio es encontrado, los programas en Java crean una excepción. Esta excepción puede ser capturada y manejada por el programa sin el riesgo de bloquear el sistema. Es seguro porque el compilador no sólo verifica todos los accesos a memoria, sino que también se asegura que no entren virus en un applet en ejecución. Ya que los apuntadores no son soportados por el lenguaje, los programas no pueden acceder a áreas del sistema a las que no tienen autorización. Es ampliable porque los programas en Java soportan métodos nativos, que son funciones escritas en otros lenguajes, generalmente C++. Este soporte a métodos nativos permite a los programadores escribir funciones que pueden ser ejecutadas más rápido que las funciones equivalentes escritas en Java. Los métodos nativos son ligados a los programas en forma dinámica, es decir, son asociados con los programas en tiempo de ejecución. Ventajas de Java. Desventajas de Java. Es seguro. Es 10 a 20 veces más lento en ejecución que C++. Se aprende con facilidad. Soportado por Microsoft. Es orientado a objetos. No bloquea el sistema. Aplicaciones para comunicación en red. No tiene aritmética de apuntadores. Es independiente de la plataforma. Soportado por Microsoft. Capacitación 2
  • 3. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Introducción a Java Java tiene las siguientes características: �� La Máquina Virtual de Java (JVM) �� Recolección de basura �� Seguridad en el código La especificación de la Máquina Virtual de Java define a ésta como: "Una máquina imaginaria que es implantada por la emulación de software en una máquina real. El código para la JVM es almacenado en archivos .class, cada uno contiene código para al menos una clase pública". Esta especificación permite a los programas Java ser independientes de la plataforma porque la compilación es hecha por una máquina genérica. Al intérprete de Java de cada plataforma de hardware le corresponde asegurar la ejecución del código compilado para la JVM. Muchos lenguajes de programación permiten el alojamiento dinámico de memoria en tiempo de ejecución. Este proceso varía en la sintaxis de los lenguajes, pero siempre hay un valor de retorno de un apuntador a la dirección de inicio del bloque de memoria. Una vez que la memoria ocupada ya no se necesita, el programa o el ambiente de ejecución debería liberar la memoria para prevenir que el programa corra sin memoria disponible. En C y C++ (y otros lenguajes), el programador es responsable de liberar la memoria. Esto puede ser tedioso, porque no se sabe con anticipación cuando se va a liberar memoria. Los programas que no liberan memoria pueden bloquear el sistema cuando no queda memoria disponible. Java quita esa responsabilidad de liberar memoria explícitamente integrando un proceso a nivel de sistema que sigue cada alojamiento de memoria y mantiene una cuenta del número de referencias a cada apuntador a memoria. Durante los intervalos de tiempo de ocio en la JVM, el proceso de recolección de basura revisa si hay apuntadores a memoria donde el número de referencias es igual a cero. Si hay algunos, el bloque de memoria marcado por el recolector es liberado. Una vez compilados los programas en Java, en el momento de ejecución se lleva a cabo una tarea de carga, revisión y ejecución. La carga consta de cargar en memoria el archivo byte-code, puede cargarse desde la máquina local o remotamente a través de la red. La revisión consta de verificar que no haya: violaciones de acceso, operaciones que conduzcan a "overflow" o "underflow", tipos de parámetros incorrectos, conversiones de datos incorrectas, acceso a objetos sin inicializar, entre otras funciones. En el proceso de ejecución ya se corren las instrucciones del programa. Comentarios Los comentarios en Java se pueden escribir en tres formas: // comentario de una línea /* comentario de una o más líneas */ /** comentario para documentación */ Los comentarios de documentación se colocan justo antes de la variable o función. Estos sirven para el programa javadoc, el cual genera archivos html, y sirven como una descripción del tópico declarado. Identificadores Capacitación 3
  • 4. Laboratorio de Cómputo de Ingeniería Curso de Java Básico En Java, un identificador empieza con una letra, el carácter de subraya o el signo $. Los demás caracteres pueden contener dígitos. Todos los identificadores son sensibles a mayúsculas / minúsculas. Ejemplos de identificadores validos: variable nombreUsuario Nombre_Usuario _numero $cadena Los últimos tres ejemplos son muy poco usados en la generalidad de los programas. Los identificadores pueden contener palabras reservadas, pero no pueden ser palabras reservadas; por ejemplo, es valido integer, pero no int. Palabras reservadas abstract do implements private throw boolean double import protected throws break else instanceof public transient byte extends int return true case false interface short try catch final long static void char finally native super volatile class float new switch while continue for null synchronized default if package this Nota.- En Java, true, false y null se escriben en minúsculas, al contrario que en C++. No existe un operador sizeof; el tamaño y representación de todos los tipos es fija y no es dependiente de la implantación. Las palabras goto y const no se usan en Java. Tipos de datos Java define ocho tipos de datos primitivos y uno especial. Se pueden agrupar en: lógicos, textuales, integrales y de punto flotante. El tipo de dato boolean sólo tiene dos valores: false y true. En C/C++ se permite que valores numéricos sean interpretados como valores lógicos, pero no es el caso de Java; sólo se permiten valores lógicos. Los tipos de datos textuales son: char y String. Los caracteres se representan por el tipo de dato char, usando un número de 16 bits sin signo con un rango de cero a 216�1 . Los caracteres se encierran entre apóstrofes. 'a' Letra a 't' Un tabulador 'u????' Un carácter especifico, ???? es reemplazado con cuatro dígitos hexadecimales. Capacitación 4
  • 5. Laboratorio de Cómputo de Ingeniería Curso de Java Básico El tipo String, que no es primitivo, es usado para representar secuencias de caracteres. Una cadena de caracteres se encierra entre comillas. "Esto es un mensaje" Los tipos integrales son: byte, short, int y long. Todos son números con signo. Los números se pueden representar en forma decimal, octal o hexadecimal. 2 Valor decimal es dos 077 El cero que inicia indica un valor octal 0xBC27 0x indica un valor hexadecimal Para especificar un valor long se debe poner L al final del número. Se puede usar l o L, pero en minúscula se puede confundir con el número 1 en algunos casos. 2L Valor decimal dos, como un valor largo 077L El cero que inicia indica un valor octal 0xBC27L 0x indica un valor hexadecimal A continuación se presenta una tabla con los cuatro tipos de datos. La representación del rango es definida por la especificación del lenguaje como un complemento a dos y es independiente de la plataforma. Tamaño Tipo Rango 8 bits byte � 2 7 ... 2 7 �1 16 bits short � 215 ... 215�1 32 bits int � 2 31 ... 2 31�1 64 bits long � 2 63 ... 2 63�1 Los tipos de dato para número de punto flotante son: float y double. Un valor en punto flotante puede incluir el punto decimal, una parte exponente (letra E), o es seguido por la letra F (float) o la letra D (double). 3.14 Valor de punto flotante 6.02E23 Valor de punto flotante muy grande 2.718F Valor sencillo de tipo float 123.4E+306D Valor de punto flotante muy grande de tipo double Tamaño Tipo 32 bits float 64 bits double En Java, todos los valores de punto flotante son double, a menos que se indique explícitamente que sean float. Por lo tanto, en los ejemplos anteriores: 2.718F debe llevar la letra F para mantenerlo como float 123.4E+306D la D es redundante Modificadores Dentro de las palabras reservadas, Java utiliza las siguientes para modificar el acceso a una variable, clase o función y se colocan al inicio de la declaración: public, protected, default, private. Capacitación 5
  • 6. Laboratorio de Cómputo de Ingeniería Curso de Java Básico El modificador public da acceso a cualquier objeto externo. public int numero; // cualquier objeto puede accesar a esta variable El modificador protected da acceso a objetos que son parte del mismo paquete, y las subclases. (Más adelante se explica el concepto de paquete) El modificador default da acceso a objetos que son parte del mismo paquete. Sin embargo, en los programas no se especifica el modificador porque no hay una palabra para ello. int numero; // acceso default El modificador private da acceso únicamente a la clase que lo contiene. private int numero; // únicamente lo puede accesar la clase Convenciones en la programación Clases.- Los nombres de las clases deberían ser sustantivos, utilizando mayúsculas para la primera letra y minúsculas para las restantes, y se pueden mezclar varios sustantivos. class CuentaBancaria Interfaces.- Los nombres de las interfaces deberían tener la primera letra mayúscula, como en los nombres de clase. interface Cuenta Métodos.- Los nombres de los métodos deberían ser verbos, todo el verbo en minúscula. Se pueden agregar sustantivos con la primera letra en mayúscula. Evitar el uso de subrayas. void revisarCuenta() Constantes.- Las constantes de tipos de datos primitivos deberían escribirse completamente en mayúsculas y separadas las palabras por subrayas. Las constantes de objeto pueden combinar mayúsculas y minúsculas final int MAX_CREDITO Variables.- Todas las variables deberían ser en minúsculas, y si se agregan palabras se separarán con una letra mayúscula. Evitar el uso del signo $. primerUsuario Las variables deben tener significado e indicar su uso. Las variables de una letra deberían evitarse, excepto las que suelen usarse en ciclos (x, y, i, j) para controlarlo. Otras convenciones de la programación incluyen el uso de llaves ({}) alrededor de un bloque de instrucciones, incluso cuando se trate de una sola instrucción, ya que esto ayuda en el mantenimiento del programa. if(condición) { bloque } El espaciado ayuda en la comprensión del programa. Se sugiere escribir una instrucción por línea y usar indentación de uno o dos espacios. Capacitación 6
  • 7. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Los comentarios también ayudan en la comprensión y mantenimiento del programa al dar una descripción clara de lo que hace cada función y el uso de las variables. Ejemplo: // primer programa en Java public class HelloWorld { public static void main(String argv[]) { System.out.println("Hello world!"); } } En detalle: // primer programa en Java La primera línea es un comentario. public class HelloWorld { Las siguientes dos líneas son la declaración de la clase, que al momento de ser compilado el programa, generará un archivo .class. Es importante que el nombre de la clase sea el mismo que el nombre del archivo: si la clase se va a llamar HelloWorld, el archivo se debe llamar HelloWorld.java. public static void main(String argv[]) { En las siguientes dos líneas se declara el inicio del programa. Para que el intérprete de Java pueda ejecutar el programa debe tener la misma sintaxis (excepto para el nombre del parámetro de main). Se declara public para que lo pueda accesar el intérprete de Java. Se declara static porque no se ha creado algún objeto y no se crea una instancia. Se declara void porque no se regresa valor alguno. En este ejemplo no se va a esperar parámetros de la línea de comandos. En argv[] se guardan los parámetros y la primera posición contiene el primer parámetro, no el nombre del programa: argv[0] parametro1 argv[1] parametro2 System.out.println("Hello world!"); La siguiente línea muestra el uso de una clase y un método que imprime en la salida estándar (la pantalla) un mensaje. } } Finalmente se termina el bloque del método main y la declaración de la clase. Una vez que se tiene el código fuente en el archivo HelloWorld.java se usa el compilador de Java de la siguiente manera: javac HelloWorld.java Si el compilador no regresa mensajes de error, se habrá creado un nuevo archivo HelloWorld.class en el mismo directorio que el código fuente. Capacitación 7
  • 8. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Después de la compilación, se puede ejecutar el programa y ver el resultado usando el intérprete de Java: java HelloWorld Modifica el programa anterior para dejar errores y ver lo que presenta el compilador. Capacitación 8
  • 9. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Laboratorio 1 Modificar el programa de “HelloWorld.java” para que reciba un nombre por medio de un parámetro en la línea de comandos y que lo imprima en forma de saludo. Por ejemplo: C:>java Hello JoseLuis Esto deberá desplegar una salida: Gusto en conocerte JoseLuis *Nota: Recuerde que los parámetros que son recibidos en la línea de comandos se guardan en el arreglo de tipo String (comúnmente llamada argv[ ] ) del método main. Trate de utilizar la propiedad “length” del ya mencionado arreglo para controlar el número de parámetros recibidos. Ver Cap1Hello.java Capacitación 9
  • 10. Laboratorio de Cómputo de Ingeniería Curso de Java Básico Capítulo 2 - El lenguaje Inicialización de variables Java no permite que una variable tenga un valor indefinido. Cuando un objeto es creado, sus variables son inicializadas con los siguientes valores: byte 0 short 0 int 0 long 0L float 0.0F double 0.0D char 'u0000' (NULO) boolean false todas las referencias null Si algún objeto hace referencia a algo con valor de null, creará una excepción (un error que es manejable). Para evitar que las variables tengan valores indeseables, se debe asignárseles algún valor útil. El compilador estudia el código para determinar que cada variable ha sido inicializada antes de su primer uso. Si el compilador no puede determinar esto, entonces ocurre un error en tiempo de compilación. public void calcula() { int x = (int)(Math.random() * 100); int y; int z; if(x > 50) { y = 9; } z = y + x; // el posible uso antes de la inicialización de y creara un error de compilación } Expresiones lógicas Los operadores relacionales y lógicos regresan un valor boolean. En Java no existe conversión automática de int a boolean, como en C++. int i = 1; if(i) // error en tiempo de compilación if(i != 0) // correcto Operadores y su Precedencia Capacitación 10