Académique Documents
Professionnel Documents
Culture Documents
AGOSTO - ENERO
M.C.C. F. Alonso S.
10/09/2013
Qu es JAVA?
Java es un lenguaje de programacin y la primera plataforma informtica creada por Sun Microsystems en 1995. Es la tecnologa subyacente que permite el uso de programas punteros, como herramientas, juegos y aplicaciones de negocios. Java se ejecuta en ms de 850 millones de ordenadores personales de todo el mundo y en miles de millones de dispositivos, como dispositivos mviles y aparatos de televisin.
M.C.C. F. Alonso S.
10/09/2013
Existe un gran nmero de aplicaciones y sitios Web que no funcionan a menos que Java est instalado, y muchas ms que se crean a diario. Java es rpido, seguro y fiable. De porttiles a centros de datos, de consolas de juegos a superequipos cientficos, de telfonos mviles a Internet, Java est en todas partes.
M.C.C. F. Alonso S.
10/09/2013
El lenguaje de programacin Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compaa Oracle) y publicado en el 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva mucho de C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier mquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.
M.C.C. F. Alonso S.
10/09/2013
Java es un lenguaje de programacin de propsito general, concurrente, orientado a objetos y basado en clases que fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible. Su intencin es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en ingls como WORA, o "write once, run anywhere"), lo que quiere decir que el cdigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir del 2012, uno de los lenguajes de programacin ms populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados
M.C.C. F. Alonso S.
10/09/2013
Filosofa
El lenguaje Java se cre con cinco objetivos principales:
Debera usar el paradigma de la programacin orientada a objetos. Debera permitir la ejecucin de un mismo programa en mltiples sistemas operativos. Debera incluir por defecto soporte para trabajo en red. Debera disearse para ejecutar cdigo en sistemas remotos de forma segura. Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
M.C.C. F. Alonso S.
10/09/2013
Historia
Java se cre como una herramienta de programacin para ser usada en un proyecto de set-top-box en una pequea operacin denominada the Green Project en Sun Microsystems en el ao 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabaj durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo. El lenguaje se denomin inicialmente Oak (por un roble que haba fuera de la oficina de Gosling), luego pas a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas grficas y finalmente se renombr a Java.
M.C.C. F. Alonso S.
10/09/2013
Es frecuentada por algunos de los miembros del equipo. Pero no est claro si es un acrnimo o no, aunque algunas fuentes sealan que podra tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrnimo, Just Another Vague Acronym ("slo otro acrnimo ambiguo ms"). La hiptesis que ms fuerza tiene es la que Java debe su nombre a un tipo de caf disponible en la cafetera cercana, de ah que el icono de java sea una taza de caf caliente. Un pequeo signo que da fuerza a esta teora es que los 4 primeros bytes (el nmero mgico) de los archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teoras, el nombre fue sacado al parecer de una lista aleatoria de palabras.
M.C.C. F. Alonso S.
10/09/2013
Los objetivos de Gosling eran implementar una mquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesin maratoniana de tres das entre John Gaga, James Gosling, Patrick Naughton, Wayne Rosing y Eric Schmidt, el equipo reorient la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciara que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisin por cable. Naughton cre entonces un prototipo de navegador, WebRunner, que ms tarde sera conocido como HotJava. En 1994, se les hizo una demostracin de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pblica Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Cientfico de Sun Microsystems. El acto estuvo acompaado por una pequea sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sera soportado en sus navegadores. El 9 de enero del ao siguiente, 1996, Sun fund el grupo empresarial JavaSoft para que se encargase del desarrollo tecnolgico. Dos semanas ms tarde la primera versin de Java fue publicada.
M.C.C. F. Alonso S.
10/09/2013
La promesa inicial de Gosling era Write Once, Run Anywhere (Escrbelo una vez, ejectalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecucin (la JVM) ligero y gratuito para las plataformas ms populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma. El entorno de ejecucin era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las pginas web. Java ha experimentado numerosos cambios desde la versin primigenia, JDK 1.0, as como un enorme incremento en el nmero de clases y paquetes que componen la biblioteca estndar. Desde J2SE 1.4, la evolucin del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en s mismo est especificado en la Java Language Specification (JLS), o Especificacin del Lenguaje Java. Los cambios en los JLS son gestionados en JSR 901.
10/09/2013 10
M.C.C. F. Alonso S.
Java ha experimentado numerosos cambios desde la versin primigenia, JDK 1.0, as como un enorme incremento en el nmero de clases y paquetes que componen la biblioteca estndar. Desde J2SE 1.4, la evolucin del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en s mismo est especificado en la Java Language Specification (JLS), o Especificacin del Lenguaje Java. Los cambios en los JLS son gestionados en JSR 901.
JDK 1.0 (23 de enero de 1996) Primer lanzamiento: comunicado de prensa JDK 1.1 (19 de febrero de 1997) Principales adiciones incluidas: comunicado de prensa
M.C.C. F. Alonso S.
10/09/2013
11
J2SE 1.2 (8 de diciembre de 1998) Nombre clave Playground. Esta y las siguientes versiones fueron recogidas bajo la denominacin Java 2 y el nombre "J2SE" (Java 2 Platform, Standard Edition), reemplaz a JDK para distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y J2ME (Java 2 Platform, Micro Edition). J2SE 1.3 (8 de mayo de 2000) Nombre clave Kestrel.
la inclusin de la mquina virtual de HotSpot JVM (la JVM de HotSpot fue lanzada inicialmente en abril de 1999, para la JVM de J2SE 1.2)
J2SE 1.4 (6 de febrero de 2002) Nombre Clave Merlin. Este fue el primer lanzamiento de la plataforma Java desarrollado bajo el Proceso de la Comunidad Java como JSR 59.
M.C.C. F. Alonso S.
10/09/2013
12
J2SE 5.0 (30 de septiembre de 2004) Nombre clave: Tiger. (Originalmente numerado 1.5, esta notacin an es usada internamente. Desarrollado bajo JSR 176 Java SE 6 (11 de diciembre de 2006) Nombre clave Mustang. Estuvo en desarrollo bajo la JSR 270. En esta versin, Sun cambi el nombre "J2SE" por Java SE y elimin el ".0" del nmero de versin Java SE 7 Nombre clave Dolphin. En el ao 2006 an se encontraba en las primeras etapas de planificacin. Su lanzamiento fue en julio de 2011.
M.C.C. F. Alonso S.
10/09/2013
13
Una vez compilado el programa, se crea un fichero que almacena lo que se denomina bytecodes o j_code (pseudocdigo prcticamente al nivel de cdigo mquina). Para ejecutarlo, es necesario un intrprete, la JVM (Java Virtual Machine) mquina virtual Java. De esta forma, es posible compilar el programa en una estacin UNIX y ejecutarlo en otra con Windows95 utilizando la mquina virtual Java para Windows95. Esta JVM se encarga de leer los bytecodes y traducirlos a instrucciones ejecutables directamente en un determinado microprocesador, de una forma bastante eficiente.
M.C.C. F. Alonso S.
10/09/2013
14
La mquina virtual Java es la idea revolucionaria del lenguaje. Es la entidad que proporciona la independencia de plataforma para los programas Javacompilados en byte-code.
M.C.C. F. Alonso S.
10/09/2013
15
Un mismo programa fuente compilado en distintas plataformas o sistemas operativos, genera el mismo fichero en byte-code. Esto es lgico, ya que se supone que el compilador de Java traduce el fichero fuente a cdigo ejecutable por una mquina que nicamente existe en forma virtual (aunque se trabaja en la construccin de microprocesadores que ejecuten directamente el byte-code). Evidentemente, si un mismo programa en byte-code puede ser ejecutado en distintas plataformas es porque existe un traductor de ese byte-code a cdigo nativo de la mquina sobre la que se ejecuta. Esta tarea es realizada por la JVM. Existe una versin distinta de esta JVM para cada plataforma. Esta JVM se carga en memoria y va traduciendo al vuelo, los byte-codes a cdigo mquina. La JVM no ocupa mucho espacio en memoria, pinsese que fue diseada para poder ejecutarse sobre pequeos electrodomsticos como telfonos, televisores, etc.
10/09/2013 16
M.C.C. F. Alonso S.
JavaScript
JavaScript es una variacin del lenguaje Java. Desarrollado por Netscape y Sun, fue diseado para simplificar la creacin de contenidos interactivos en pginas web sin necesidad de tener que programar applets en Java. En lugar de ello se utilizan tcnicas ms sencillas mediante el lenguaje JavaScript que es ms flexible, aunque mucho menos potente. El lenguaje JavaScript es totalmente interpretado por el navegador. El cdigo fuente se incluye como parte de la pgina web en HTML y es el navegador el encargado de interpretar el cdigo fuente.
M.C.C. F. Alonso S.
10/09/2013
17
No podra hacerse en Java? S, pero no de forma tan sencilla como con JavaScript.
Este lenguaje fue pensado para acercar Java a programadores inexpertos y creadores de contenidos HTML sin conocimientos avanzados de programacin.
Diferencias entre Java y JavaScript:
Java es compilado, mientras que JavaScript es totalmente interpretado. Java es orientado a objetos. JavaScript utiliza objetos, pero no permite la programacin orientada a objetos. En JavaScript no es necesario declarar las variables y en Java s. En JavaScript, las comprobaciones de validez de referencias a objetos se realizan en tiempo de ejecucin, mientras que en Java se realiza en tiempo de compilacin. JavaScript tiene un nmero limitado de tipos de datos y clases. Los applets Java se transmiten como cdigo aparte de la pgina Web. En JavaScript, los applets se transmiten conjuntamente con la pgina web (embebidos en ella).
10/09/2013 18
M.C.C. F. Alonso S.
La herramienta bsica para empezar a desarrollar aplicaciones o applets en Java es el JDK (Java Developers Kit) o Kit de Desarrollo Java, que consiste, bsicamente, en un compilador y un intrprete (JVM) para la lnea de comandos. No dispone de un entorno de desarrollo integrado (IDE), pero es suficiente para aprender el lenguaje y desarrollar pequeas aplicaciones.
M.C.C. F. Alonso S.
10/09/2013
19
Dnde conseguirlo?
http://www.sun.com http://www.oracle.com/technetwork/java/index.html
M.C.C. F. Alonso S.
10/09/2013
20
El entorno para Windows est formado por un fichero ejecutable que realiza la instalacin, creando toda la estructura de directorios. El kit contiene bsicamente:
El compilador: javac.exe El depurador: jdb.exe El intrprete: java.exe y javaw.exe El visualizador de applets: appletviewer.exe El generador de documentacin: javadoc.exe Un desensamblador de clases: javap.exe
El generador de archivos fuentes y de cabecera (.c y .h) para clases nativas en C: javah.exe
10/09/2013 21
M.C.C. F. Alonso S.
En Java, prcticamente todo son clases (objetos). El lenguaje obliga a la programacin orientada a objetos y no permite la posibilidad de programar mediante ninguna otra tcnica que no sea sta. Por esta razn, un programa estar formado por uno o varios archivos fuente y en cada uno de ellos habr definida una o varias clases.
M.C.C. F. Alonso S.
10/09/2013
22
En un fichero fuente puede declararse una o ms clases y tendr un aspecto similar a este: class Clase1 { } class Clase2 { } class ClaseN {
}
M.C.C. F. Alonso S. 10/09/2013 23
Una clase est formada por una parte correspondiente a la declaracin, y otra correspondiente al cuerpo de la misma: Cuerpo de clase } En la plantilla anterior se ha simplificado el aspecto de la Declaracin de clase, pero s que puede asegurarse que la misma contendr, como mnimo, la palabra reservada class y el nombre que recibe la clase.
Declaracin de clase {
M.C.C. F. Alonso S.
10/09/2013
24
El cuerpo de las clases comienza con una llave abierta({) y termina con una llave cerrada (}). Dentro del cuerpo de la clase se declaran los atributos y los mtodos de la clase. Para que un programa se pueda ejecutar, debe contener una clase que tenga un mtodo main con la siguiente declaracin: public static void main( String argumentos [] )
M.C.C. F. Alonso S.
10/09/2013
25
class Hola {
El lenguaje Java, al igual que C, distingue entre maysculas y minsculas, por lo que es importante transcribirlo literalmente. Tambin hay que comentar que en el nombre del archivo fuente tambin se hace distincin entre maysculas y minsculas a la hora de compilarlo, aunque el sistema operativo empleado no haga esta distincin. La extensin del mismo debe ser .java
10/09/2013 26
M.C.C. F. Alonso S.
Todo programa independiente escrito en Java empieza a ejecutarse (como en C) a partir del mtodo main(). Se pueden compilar clases que no posean mtodo main(), pero el intrprete Java no podr ejecutarlas inicialmente, aunque s pueden ejecutarse si son llamadas desde otro mtodo en ejecucin.
M.C.C. F. Alonso S.
10/09/2013
27
public: indica que el mtodo main() es pblico y, por tanto, puede ser llamado desde otras clases. Todo mtodo main() debe ser pblico para poder ejecutarse desde el intrprete Java (JVM). static: indica que la clase no necesita ser instanciada para poder utilizar el mtodo al que califica. (No se crea ninguna instancia u objeto de la clase Hola). Tambin indica que el mtodo es el mismo para todas las instancias que pudieran crearse. void: indica que la funcin main no devuelve ningn valor. El mtodo main debe aceptar siempre, como parmetro, un vector de strings, que contendr los posibles argumentos que se le pasen al programa en la lnea de comandos, aunque como es nuestro caso, no se utilice. El mtodo main() siempre se declara de la misma forma:
La instruccin que realmente realiza el trabajo efectivo de nuestro programa es la siguiente: System.out.println("hola, mundo"); Este lnea indica que se va a ejecutar el mtodo println(), encargado de mostrar un valor a travs de la salida estndar (en nuestro caso, un String) y despus realizar un retorno de carro y nueva lnea. Este mtodo pertenece al atributo out. Este atributo se encuentra incluido dentro de la clase System.
M.C.C. F. Alonso S.
10/09/2013
29
Comentarios.
Los comentarios en los programas fuente son muy importantes en cualquier Sirven para aumentar la facilidad de comprensin del cdigo y para recordar ciertas cosas sobre el mismo. Son porciones del programa fuente que no sern compiladas, y, por tanto, no ocuparn espacio en el fichero ejecutable. nicamente sirven para documentar.
lenguaje.
M.C.C. F. Alonso S.
10/09/2013
30
Si un comentario debe ocupar ms de una lnea, hay que anteponerle /* y al final */.
Si el comentario que se desea escribir es de una sola lnea, basta con poner dos barras inclinadas: //
M.C.C. F. Alonso S.
10/09/2013
31
No puede ponerse cdigo despus de un comentario introducido por // en la misma lnea, ya que desde la aparicin de las dos barras inclinadas // hasta el final de la lnea es considerado como comentario e ignorado por el compilador.
M.C.C. F. Alonso S.
10/09/2013
32
M.C.C. F. Alonso S.
10/09/2013
33
Secuencias de Escape
Una secuencia de escape esta formada por el carcter \ seguido de una letra o de una combinacin de dgitos. Son utilizadas por acciones como nueva lnea, tabular y para hacer referencia a caracteres no imprimibles. El lenguaje JAVA tiene predefinidas las siguientes secuencias de escape: Secuencia \n \t \b HT BS ASCII CR-LF Definicin Ir al principio de la siguiente lnea Tabulador horizontal Retroceso (backspace)
\r
M.C.C. F. Alonso S.
CR FF
\f
Definicin
Barra invertida(backslash) Carcter ASCII. Representacin octal Carcter ASCII. Representacin hexadecimal Alerta, pitido Tabulador vertical(solo para impresora)
M.C.C. F. Alonso S.
10/09/2013
35
Tipos de datos
Para que el compilador JAVA reconozca esta operacin es necesario especificar previamente el tipo de cada uno de los operandos que intervienen en la misma, as como el tipo de resultado. Para ello escribimos una lnea como la siguiente:
Int dato1, dato2, resultado; La declaracin anterior le dice el compilador JAVA que dato1, dato2 y resultado son de tipo entero (int). Los tipos de datos en JAVA se clasifica en: tipos primitivos y tipos referenciados.
M.C.C. F. Alonso S.
10/09/2013
36
Tipos primitivos
Hay ocho tipos de datos que podemos clasificar en: tipos numricos y el tipo boolean. A su vez, los tipos numricos se clasifican en tipos enteros y tipos reales. Tipos enteros: byte, short, int, long y char. Tipos reales: float y double. Cada tipo primitivo tiene un rango diferente de valores positivos y negativos. El tipo de dato que se seleccione para declarar las variables de un determinado programa depender del rango y tipo de valores que se vayan a almacenar cada una de ellas y de si estos son enteros o fraccionarios.
M.C.C. F. Alonso S.
10/09/2013
37
Se les llama primitivos por que estn integrados al sistema y en realidad no son objetos, lo cual hace que su uso sea mas eficiente.
M.C.C. F. Alonso S.
10/09/2013
38
byte
El tipo byte, se utiliza para declarar enteros comprendidos entre -128 y +127. Un byte se define como un conjunto de 8 bits, independientemente de la plataforma en que se ejecute el cdigo byte de JAVA. El siguiente ejemplo declara la variable b de tipo byte y le asigna el valor inicial 0.
byte b=0;
M.C.C. F. Alonso S.
10/09/2013
39
short
El tipo short se utiliza para declarar datos enteros comprendidos entre -32768 y +32767. Un valor de short se define como un dato de 16 bits de longitud, independientemente de la plataforma en la que resida el cdigo byte de JAVA. El siguiente ejemplo declara i y j como variables enteras de tipo short:
Short i = 0, j = 0;
M.C.C. F. Alonso S.
10/09/2013
40
int
El tipo int se utiliza para declarar datos enteros comprendidos entre 2147483648 y +2147483647. Un valor int se define como un dato de 32 bits de longitud, independientemente de la plataforma en la que se ejecute el cdigo byte de JAVA. El siguiente ejemplo declara e inicia tres variables a,b y c, de tipo int.
long
El tipo long se utiliza para declarar datos enteros comprendidos entre los valores -9223372036854775808 y +9223372036854775807. Un valor long, se define como un dato de 64 bits de longitud, independientemente de la plataforma en la que se ejecute el cdigo byte de JAVA. El siguiente ejemplo declara e inicializa las variables a.b y c, de tipo long:
char
El tipo char es utilizado para declarar datos enteros en el rango \u0000 a \Uffff en Unicode (0 a 65535). Los valores 0 a 127 se corresponden con los caracteres ASCII del mismo cdigo. El juego de caracteres ASCII conforman una parte muy pequea del juego de caracteres Unicode. Ejemplos:
Char car = a; Char car = 97; Char car = 0x0061; Char car = \u0061;
M.C.C. F. Alonso S. 10/09/2013 43
float
El tipo float se utiliza para declarar un dato en coma flotante de 32 bits en el formato IEEE 754 (este formato utiliza un bit para el signo, 8 bits para el exponente y 23 para la mantisa). Los datos de tipo float almacenan valores con una precisin aproximada de 7 dgitos. Para especificar que una constante (un literal) es de tipo float, hay que aadir al final de su valor la letra f o F. El siguiente ejemplo declara las variables a,b y c, de tipo real de precisin simple:
Float a = 3.14159F;
double
El tipo doubl se utiliza para declarar un dato en coma flotante de 64 bits en el formato IEEE 754 (1 bit para el signo, 11 bits para el exponente y 52 para la mantisa). Los datos de tipo doubl almacenan valores con una precisin aproximada de 16 dgitos. Para especificar que una constante (un literal) es de tipo doubl, hay que aadir al final de su valor la letra d o D; El siguiente ejemplo declara las variables a,b y c, de tipo real de precisin doble:
boolean
El tipo boolean se utiliza para indicar si el resultado de la evaluacin de una expresin booleana es verdadero falso. Los dos posibles valores de una expresin booleana son true y false. Los literales true y false son constantes definidas como palabras clave en el lenguaje JAVA.
M.C.C. F. Alonso S.
10/09/2013
46
literales
Una literal es la expresin de un valor de un tipo primitivo, de un tipo String(cadena de caracteres) o la expresin null(valor nulo o desconocido). Por ejemplo son literales: 5, 3.14, a. hola y null. En realidad son valores constantes. Una literal en JAVA puede ser: un entero, un real, un valor booleano, un carcter, una cadena de caracteres y un valor nulo.
M.C.C. F. Alonso S.
10/09/2013
47
Literales enteros
En lenguaje JAVA permite especificar una literal entero como base 10,8 y 16.
En general, el signo + es opcional si el valor es positivo y el signo estar presente siempre que el valor sea negativo.
Sintaxis:
{[+]|-}literal_entero[{] |[}]
Una literal entero decimal puede tener uno o mas dgitos del 0 al 9, de los cuales el primero de ellos es distinto de 0. Por ejemplo: Constante entera int constante entera long Constante entera long
10/09/2013 48
Una literal entero octal puede tener uno o mas dgitos del 0 al 7, precedido por 0(cero). Por ejemplo: Constante entera int en base 8
0326
M.C.C. F. Alonso S.
10/09/2013
49
Una literal entero hexadecimal puede tener uno o mas dgitos del 0 al 9 y letras de la A a la F (en maysculas o en minsculas) precedidas por 0x o 0X. Ejemplos: Numero decimal 256 Numero decimal 256 expresado en octal numero decimal 256 expresado en hexadecimal numero decimal -256 expresado en octal numero decimal -256 expresado en hexadecimal
M.C.C. F. Alonso S.
10/09/2013
50
El resto de tipos de datos que no son simples, son considerados referenciales. Estos tipos son bsicamente las clases, en las que se basa la programacin orientada a objetos. Al declarar un objeto perteneciente a una determinada clase, se est reservando una zona de memoria donde se almacenarn los atributos y otros datos pertenecientes a dicho objeto. Lo que se almacena en el objeto en s, es un puntero (referencia) a dicha zona de memoria. Dentro de estos tipos pueden considerarse las interfaces, los Strings y los vectores, que son unas clases un tanto especiales, y que se vern en detalle posteriormente
M.C.C. F. Alonso S.
10/09/2013
51
Existe un tipo referencial especial nominado por la palabra reservada null que puede ser asignado a cualquier variable de cualquier clase y que indica que el puntero no tiene referencia a ninguna zona de memoria (el objeto no est inicializado). Adems, todos los tipos de datos simples vistos en el punto anterior pueden ser declarados como referenciales (objetos), ya que existen clases que los engloban.
M.C.C. F. Alonso S.
10/09/2013
52
M.C.C. F. Alonso S.
10/09/2013
53
Identificadores
Son nombres dados a tipos, literales, variables, clases, interfaces, mtodos, paquetes y sentencias de un programa. La sintaxis para formar un identificador es la siguiente:
{letra|_|$}[{letra|digito|_|$|]
Las letras pueden ser maysculas o minsculas. Para Java una letras mayscula es un carcter diferente a esa msima letra minscula. Por ejemplo los identificadores: Suma, suma y SUMA son diferentes.
M.C.C. F. Alonso S.
10/09/2013
54
Java hace distincin entre maysculas y minsculas, por lo tanto, nombres o identificadores como var1, Var1 y VAR1 son distintos. Pueden estar formados por cualquiera de los caracteres del cdigo Unicode, por lo tanto, se pueden declarar variables con el nombre: aoDeCreacin, ram, etc. (se acab la poca de los nombres de variable como ano_de_creacion), aunque eso s, el primer carcter no puede ser un dgito numrico y no pueden utilizarse espacios en blanco ni smbolos coincidentes con operadores. La longitud mxima de los identificadores es prcticamente ilimitada. No puede ser una palabra reservada del lenguaje ni los valores lgicos true o false.
10/09/2013 55
2.
3. 4.
M.C.C. F. Alonso S.
5. 6.
No pueden ser iguales a otra identificador declarado en el mismo mbito. Por convenio, los nombres de las variables y los mtodos deberan empezar por una letra minscula y los de las clases por mayscula. Adems, si el identificador est formado por varias palabras la primera se escribe en minsculas (excepto para las clases) y el resto de palabras se hace empezar por mayscula (por ejemplo: aoDeCreacin). Estas reglas no son obligatorias, pero son convenientes ya que ayudan al proceso de codificacin de un programa, as como a su legibilidad. Es ms sencillo distinguir entre clases y mtodos o variables.
M.C.C. F. Alonso S.
10/09/2013
56
Ya que el lenguaje permite identificadores todo lo largos que se desee, es aconsejable crearlos de forma que tengan sentido y faciliten su interpretacin. El nombre ideal para un identificador es aquel que no se excede en longitud (lo ms corto posible) siempre que califique claramente el concepto que intenta representar.
M.C.C. F. Alonso S.
10/09/2013
57
Declaracin de variables.
La declaracin de una variable se realiza de la misma forma que en C. Siempre contiene el nombre (identificador de la variable) y el tipo de dato al que pertenece. El mbito de la variable depende de la localizacin en el programa donde es declarada.
Ejemplo:
int x; Las variables pueden ser inicializadas en el momento de su declaracin, siempre que el valor que se les asigne coincida con el tipo de dato de la variable. Ejemplo: int x = 0;
M.C.C. F. Alonso S.
10/09/2013
58
El mbito de una variable es la porcin de programa donde dicha variable es visible para el cdigo del programa y, por tanto, referenciable. El mbito de una variable depende del lugar del programa donde es declarada, pudiendo pertenecer a cuatro categoras distintas.
Variable local.
Atributo.
Parmetro de un mtodo. Parmetro de un tratador de excepciones.
M.C.C. F. Alonso S.
10/09/2013
59
Variables locales.
Una variable local se declara dentro del cuerpo de un mtodo de una clase y es visible nicamente dentro de dicho mtodo. Se puede declarar en cualquier lugar del cuerpo, incluso despus de instrucciones ejecutables, aunque es una buena costumbre declararlas justo al principio.
M.C.C. F. Alonso S.
10/09/2013
60
public Caracter(char c) {
ch=c; } public void repetir(int num) { int i; for (i=0;i<num;i++) System.out.println(ch);
}
} class Ej1 { public static void main(String argumentos[]) { Caracter caracter; caracter = new Caracter('H'); caracter.repetir(20); } } M.C.C. F. Alonso S. 10/09/2013 61
En este ejemplo existe una variable local: int i; definida en el mtodo repetir de la clase Caracter, por lo tanto, nicamente es visible dentro del mtodo repetir. Tambin existe una variable local en el mtodo main. En este caso, la variable local es un objeto:
Caracter caracter; que slo ser visible dentro del mtodo en el que est declarada (main).
M.C.C. F. Alonso S.
10/09/2013
62
Cuando se pretende declarar mltiples variables del mismo tipo pueden declararse, en forma de lista, separadas por comas: Ejemplo: Declara tres variables x, y, z de tipo entero. Podran haberse inicializado en su declaracin de la forma: No es necesario que se declaren al principio del mtodo. Puede hacerse en cualquier lugar del mismo, incluso de la siguiente forma: for (int i=0;i<num;i++) System.out.println(ch);
int x,y,z;
int x=0,y=0,z=3;
}
M.C.C. F. Alonso S. 10/09/2013 63
En el caso de las variables locales, stas no se inicializan con un valor por defecto, como se ha comentado en el punto anterior, sino que es necesario asignarles algn valor antes de poder utilizarlas en cualquier instruccin, de lo contrario el compilador genera un error, de tal forma que es imposible hacer uso de una variable local no inicializada sin que se percate de ello el compilador.
M.C.C. F. Alonso S.
10/09/2013
64
Atributos.
Los atributos de una clase son las caractersticas que se van a tener en cuenta sobre un objeto y por lo tanto su mbito est circunscrito, en principio, dentro de la clase a la cual caracterizan. Se declaran de la misma forma que las variables locales pero, adems, pueden tener algunos modificadores que afectan al mbito de los mismos. En el ejemplo anterior, ch es un atributo de la clase Caracter y por lo tanto es manipulable en cualquier mtodo de dicha clase, como de hecho ocurre en los mtodo repetir() y Carcter(). Para acceder a un atributo de un objeto desde algn mtodo perteneciente a otra
clase u objeto se antepone el nombre del objeto y un punto al nombre de dicho atributo. Por ejemplo:
caracter.ch
M.C.C. F. Alonso S. 10/09/2013 65
Parmetros de un mtodo.
La lista_de_parmetros consiste en una serie de variables, separadas por comas y declarando el tipo al que pertenecen.
Ejemplo: public static void miMtodo(int v1, int v2, float v3, String v4, ClaseObjeto v5);
M.C.C. F. Alonso S. 10/09/2013 66
Ntese que aunque existan varios parmetros pertenecientes al mismo tipo o clase, no pueden declararse abreviadamente, como ocurre con las variables locales y los atributos, indicando el tipo y a continuacin la lista de parmetros separados por comas. As, es ilegal la siguiente declaracin del mtodo anterior:
public static void miMtodo(int v1, v2, float v3, String v4, ClaseObjeto v5);
M.C.C. F. Alonso S.
10/09/2013
67
Variables de tipo simple de datos: En este caso, el paso de parmetros se realiza siempre por valor. Es decir, el valor del parmetro de llamada no puede ser modificado en el cuerpo del mtodo (El mtodo trabaja con una copia del valor utilizado en la llamada). Variables de tipo objeto (referencias): En este caso, lo que realmente se pasa al mtodo es un puntero al objeto y, por lo tanto, elvalor del parmetro de llamada s que puede ser modificado dentro del mtodo (El mtodo trabaja directamente con el valor utilizado en la llamada), a no ser que se anteponga la palabra reservada final..
M.C.C. F. Alonso S.
10/09/2013
68
M.C.C. F. Alonso S.
10/09/2013
69
M.C.C. F. Alonso S.
10/09/2013
70
Como puede verse, despus de la llamada, el valor del objeto obj s ha sido modificado (se ha realizado un pase de parmetro por referencia), mientras que el valor de la variable var1 no ha sido modificado (se ha realizado un paso de parmetro por valor).
10/09/2013 71
M.C.C. F. Alonso S.
Operadores
Los operadores son partes indispensables en la construccin de expresiones. Existen muchas definiciones tcnicas para el trmino expresin. Puede decirse que una expresin es una combinacin de operandos ligados mediante operadores. Los operandos pueden ser variables, constantes, funciones, literales, etc. y los operadores todos los enumerados en este punto.
M.C.C. F. Alonso S.
10/09/2013
72
Operadores aritmticos
M.C.C. F. Alonso S.
10/09/2013
73
Como en C, los operadores unarios ++ y -- realizan un incremento y un decremento respectivamente. Estos operadores admiten notacin prefija y postfija.
++op1: En primer lugar realiza un incremento (en una unidad) de op1 y despus ejecuta la instruccin en la cual est inmerso. op1++: En primer lugar ejecuta la instruccin en la cual est inmerso y despus realiza un incremento (en una unidad) de op1. --op1: En primer lugar realiza un decremento (en una unidad) de op1 y despus ejecuta la instruccin en la cul est inmerso.
op1--:
En primer lugar ejecuta la instruccin en la cual est inmerso y despus realiza un decremento (en una unidad) de op1.
M.C.C. F. Alonso S.
10/09/2013
74
La diferencia entre la notacin prefija y la postfija no tiene importancia en expresiones en las que nicamente existe dicha operacin: es equivalente a: contador++; contador--;
++contador; --contador;
Es importante no emplear estos operadores en expresiones que contengan ms de una referencia a la variable incrementada, puesto que esta prctica puede generar resultados errneos fcilmente.
M.C.C. F. Alonso S.
10/09/2013
75
La diferencia es apreciable en instrucciones en las cules estn incluidas otras operaciones. Por ejemplo:
En el primer caso, el bucle se ejecutar 3 veces, mientras que en el segundo se ejecutar 2 veces.
10/09/2013 76
M.C.C. F. Alonso S.
Operadores relacionales:
M.C.C. F. Alonso S.
10/09/2013
77
Los operadores relacionales actan sobre valores enteros, reales y caracteres (char); y devuelven un valor del tipo boolean (true o false).
M.C.C. F. Alonso S.
10/09/2013
78
M.C.C. F. Alonso S.
10/09/2013
79
Operadores lgicos:
Estos operadores actan sobre operadores o expresiones lgicas, es decir, aquellos que se evalan a cierto o falso (true / false). Por ejemplo, el siguiente programa:
10/09/2013 80
M.C.C. F. Alonso S.
M.C.C. F. Alonso S.
10/09/2013
81
M.C.C. F. Alonso S.
10/09/2013
82
Operadores de bits
M.C.C. F. Alonso S.
10/09/2013
83
M.C.C. F. Alonso S.
10/09/2013
84
Los operadores de bits actan sobre valores enteros (byte, short, int y long) o caracteres (char).
M.C.C. F. Alonso S.
10/09/2013
85
M.C.C. F. Alonso S.
10/09/2013
86
Operadores de Asignacion
M.C.C. F. Alonso S.
10/09/2013
87
Palabras Clave
abstract boolean break byte case catch char class const continue
M.C.C. F. Alonso S.
private protected public return short static super switch synchonized this
10/09/2013
88
Comentarios
Un comentarios es un mensaje a cualquiera que lea el cdigo fuente. Aadiendo comentarios se hace mas fcil la comprensin de un programa. La finalidad de los comentarios es explicar el cdigo fuente. Java soporta tres tipos de comentarios:
Comentario tradicional. Un comentario tradicional empieza con los caracteres /* y finaliza con */. Estos comentarios pueden ocupar mas de una lnea. Ejemplo: /********************************************************************************
* Le ejecucin del programa comienza con el mtodo main(). * La llamada al constructor de la clase no tiene lugar a menos * que se cree un objeto del tipo CElementosJava * en el mtodo main(). */
M.C.C. F. Alonso S.
10/09/2013
89
Operadores
M.C.C. F. Alonso S.
10/09/2013
90
M.C.C. F. Alonso S.
10/09/2013
91
M.C.C. F. Alonso S.
10/09/2013
92
M.C.C. F. Alonso S.
10/09/2013
93