Sei sulla pagina 1di 40

Introduccin al Lenguaje Java

La orientacin a objetos puede percibirse desde dos puntos de vista, como una metodologa de
diseo de software o como un paradigma de programacin que define los programas en trminos
de "clases de objetos", objetos que son entidades que combinan su estado (es decir, datos) y su
comportamiento (esto es, procedimientos o mtodos). La programacin orientada a objetos
(POO) expresa un programa como un conjunto de stos elementos, que se comunican entre ellos
para realizar tareas. Esto difiere de los lenguajes procedurales tradicionales, en los que los datos y
los procedimientos estn separados y sin relacin. La POO est pensada para hacer programas
ms fciles de organizar, mantener y reutilizar, ya que anima al programador a pensar los
programas en trminos de tipos de datos, y en segundo lugar en las operaciones especficas para
esos tipos de datos.

1.1 Orgenes de Java

El primer lenguaje de programacin orientado a objetos fue Simula, creado en la dcada de


1960s por Kristen Nygaard (Figura 1) y Ole-Johan Dahl (Figura 2), del Centro de Computacin
Noruego, fue desarrollo para apoyar la modelacin de simulaciones de eventos discretos en
procesos cientficos e industriales, mediante la representacin directa de objetos del mundo real.

Figura 1: Kristen Nygaard Figura 2: Ole-Johan Dahl

Con Simula I (1961 al 65) y Simula 67, Nygaard y Dahl introducan los conceptos bajo los cuales
ms tarde todos los lenguajes de programacin orientada a objetos serian construidos: objetos,
clases, herencia, cuantificador virtual y ejecucin de programas multi-hilo.

El trmino Orientado a Objetos fue acuado por Alan Kay (Figura 3) en la dcada de los 1970s,
as mismo, l es considerado tambin como uno de los creadores del modelo orientado a objetos.
Alan Kay desarrollo mejoras sustnciales al modelo de programacin, generando un lenguaje
llamado Smalltalk que era un sistema completamente dinmico en el cual las clases pueden ser
creadas y modificadas dinmicamente.

En la primera mitad de la dcada de los ochenta la POO se convirti en una metodologa de


programacin dominante debido principalmente a la influencia de Smalltalk. Su dominancia fue
completamente cimentada por el surgimiento de las Interfaces grficas de usuario (GUIs)
desarrolladas principalmente en Smalltalk, para lo cual la orientacin a objetos es decididamente la
mejor opcin. A partir de este punto, se desarrollaron ms lenguajes de programacin de este tipo
entre los que destacan Objective-C (de Brad Cox), C++, Eiffel, Oberon de Niklaus Wirth (Figura 4),
Java y ya ms recientemente Python, Perl, PHP, C# y .NET.

1
Figura 3: Alan Kay Figura 4: Niklaus Wirth

A continuacin explicaremos los puntos ms importantes relacionados con este paradigma de


programacin y las bases en las que se sustenta su funcionamiento y metodologa.

1.1.1 Conceptos
bsicos
El paradigma orientado a objetos se enfoca a las caractersticas de comportamiento y estructura de
las entidades como unidades completas, lo que nos permite disear software de manera modular y
con un alto manejo de estructuras de datos complejas. El paradigma orientado a objetos se apoya
en los siguientes conceptos:

La Abstraccin (de datos) involucra la formulacin de un concepto (clase) poniendo atencin


en las similitudes y diferencias entre las entidades de un conjunto, para extraer las
caractersticas esenciales que lo distingan y evitar las caractersticas no relevantes. Y as, se
establece una sola representacin del concepto que tenga esas caractersticas pertinentes.

Es la capacidad de crear tipos de datos definidos por el usuario extrayendo las propiedades
esenciales de un concepto, sin preocuparse de los detalles exactos de la implementacin.
Algunos simplemente lo definen como la capacidad de enfocarse en lo esencial.

La Encapsulacin asegura que los usuarios de un objeto no alteren de manera inesperada el


estado interno de un objeto; solo sus mtodos internos estn autorizados para acceder a ellos.
Cada objeto expone una interfaz publica que especifica como otros objetos podran interactuar
con l.

La abstraccin y la encapsulacin estn representadas por la clase. La clase es una


abstraccin, porque define los atributos y mtodos de un determinado conjunto de objetos con
caractersticas comunes, y es una encapsulacin por que constituye una caja negra que
encierra tanto los datos que almacena como los mtodos que permiten manipularlos.

La Herencia Es la capacidad de definir una nueva clase a partir de otra clase. De esta forma,
la reutilizacin del cdigo esta garantizada. Las clases estn clasificadas en una jerarqua
estricta, donde la clase padre es conocida como superclase y la clase hijo como clase
derivada. Esto significa que la clase derivada dispone de todos los atributos y mtodos de su
superclase.

El Polimorfismo es la propiedad que permite a una operacin tener diferente comportamiento


en diferentes objetos. Es decir, diferentes objetos reaccionan de manera diferente al mismo
mensaje (de modo que un mismo mtodo pueda tener mltiples implementaciones).
Estos conceptos son los pilares de la POO que permiten facilitar la comunicacin, incrementar la
productividad y la consistencia, facilitar la modificacin de los programas y reducir la complejidad
en esfuerzos de resolucin de problemas.
1.1.2 Los Inicios del Lenguaje Java
Java es uno de los lenguajes de programacin orientado a objetos mas verstil e interesante de
finales del siglo XX (1990), detrs de l existe una inherente similitud con la sintaxis de C++,
debido quizs a una estrategia de mercado ya que resultaba como una especie de colonizacin de
C++ a Java.

El lenguaje de programacin Java se origino como parte de un proyecto de investigacin para el


desarrollo de un lenguaje de programacin llamado Oak (1992), que buscaba superar la barrera
de comunicacin entre varios dispositivos, como video caseteras y televisores. En la compaa
Sun, exista un grupo de desarrolladores de software muy hbiles a los que se les conoca con el
nombre de Green team encabezados por James Arthur Gosling (Figura 5), este grupo de
desarrolladores trabajaban en la construccin de un lenguaje de programacin que fuera capaz de
compartir el mismo software en diferentes unidades centrales de procesamiento.

Este concepto inicial fallo despus de varios intentos, pues las compaas diseadoras de
dispositivos fueron incapaces de vislumbrar los beneficios y el nicho de mercado que se
presentaba, por lo que el Green team fue forzado a encontrar otro mercado para su nuevo
lenguaje de programacin.

Afortunadamente, en ese lapso de tiempo Internet comenz a ser mas popular y accesible (1994) y
el Green team pudo estar consciente que el lenguaje Oak era perfecto para el desarrollo Web de
componentes multimedia para la construccin de paginas Web. Estas pequeas aplicaciones,
llamadas applets, llegaron a ser el primer contacto del lenguaje para los programadores de
Internet.

De esta manera Java se convirti rpidamente en un lenguaje poderoso y verstil, ya que inclua
una variedad de cualidades que lo hacia idneo para el desarrollo Web, debido principalmente a
que contaba con una plataforma de desarrollo y un esquema de ejecucin que permita la
portabilidad del sistema en casi cualquier arquitectura computacional. Adems de una interfaz
grafica muy eficiente. En la actualidad el l lenguaje cuenta con las siguientes caractersticas:

Orientacin a objetos
Esquema distribuido
Esquema de programacin paralelo (multithreads)
Esquema de seguridad en ejecucin y transacciones
Plataforma independiente (JVM)

Figura 5: James Gosling


1.2 Entorno de desarrollo de
Java

1.2.1 Modelo de programacin


El modelo de programacin es el conjunto de gramticas y reglas semnticas formales que
describan rigurosamente el significado de un programa en trminos de las abstracciones que lo
caracterizan. En el lenguaje Java el modelo de programacin es concretamente orientado a
objetos, es decir, la estructura bsica de programacin es la clase por lo que cualquier programa
en Java es nica y exclusivamente una clase.

class Nombre_Clase {}

En Java se elimina el uso de apuntadores que pueden afectar la estabilidad del cdigo, en tal caso
existe nicamente un conjunto de datos nativos y un sin nmero de objetos, a los que
llamaremos datos referenciados o simplemente referencias (objetos). Adems del modelo
orientado a objetos Java soporta el modelo de programacin distribuida que nos permite utilizar
dos o mas computadoras (coleccin de computadoras heterogneas) que se comunican a lo largo
de una red para ejecutar una tarea en comn.

1.2.2 Arquitectura de la Tecnologa Java

Java es un lenguaje de programacin muy peculiar pues se cataloga como compilador-interprete,


pues es capaz de generar un tipo especifico de cdigo intermedio que es fcilmente transportable
a casi cualquier plataforma computacional esto se debe a que la tecnologa de java se sustenta en
3 mecanismos principales que como veremos a continuacin le permiten adquirir todos los
beneficios de un sistema multiplataforma:
Compilador Java: el compilador de java interpreta el cdigo y genera un cdigo intermedio
denominado bytecode que puede ser fcilmente reinterpretado por una maquina virtual java.

JRE: el ambiente en tiempo de ejecucin es el software responsable de permitir al usuario final


ejecutar las aplicaciones java, posee una coleccin o librera estndar de clases que son
indispensables para el funcionamiento de los programas java, adems de incluir una maquina
virtual para el lenguaje java.

Java VM: La maquina virtual de java (JVM) provee una especificacin de plataforma la cual le
permite ejecutar cualquier programa compilado en java (bytecode). De esta forma el
compilador de java toma cualquier cdigo hecho en java y genera un archivo precompilado
llamado bytecode que es un conjunto de instrucciones que puede ser interpretado por
cualquier maquina virtual de java.

A continuacin se muestra el esquema en tiempo de ejecucin de la tecnologa java y como


interactan sus diversos elementos:

Ejecucin
Compilacin
java clase Loader

Ejemplo.java
Se lee el verificador
programa Bytecode
de disco,
javac red u otro
medio
Interprete
generador
de cdigo
JIT
Ejemplo.class Ejecucin

Hardware

El cdigo fuente (Ejemplo.java) es compilado y se genera un archivo convertido a bytecode


(Ejemplo.class), ste es el archivo que ser cargado y ejecutado en alguna maquina objeto.

Al tiempo de ejecucin, el cdigo en bytecode es ledo, verificado y puesto para su ejecucin en el


intrprete. El interprete tiene dos funciones ejecutar bytecodes y hacer las llamadas apropiadas al
hardware. En algunos ambientes de ejecucin una porcin de la verificacin de bytecode es
compilada en cdigo nativo de maquina y ejecutado directamente en la plataforma de hardware,
por lo que la velocidad de interpretacin-ejecucin se acelera.

Ahora si se trata de un lenguaje dinmico que crea y destruye objetos en tiempo de ejecucin,
qu mecanismo se encarga de liberar las instancias construidas en memoria de los diversos
objetos?
Muchos lenguajes de programacin permiten alojar memoria de manera dinmica en tiempo de
ejecucin. El proceso para alojar memoria vara de acuerdo a las caractersticas del lenguaje y en
ciertas ocasiones los bloques de memoria reservados nunca son liberados, principalmente porque
esta tarea se deja a cargo del programador (como en C/C++).

Java provee un mecanismo de recoleccin de bloques de memoria intiles y los remueve de


manera automtica. Durante la ejecucin de los programas en la maquina virtual, el recolector de
basura (Garbage Collection) comienza a verificar si existen bloques de memoria (objetos) que
han dejado de ser usados o referenciados de tal manera que los marca para que en el prximo
ciclo de verificacin sean eliminados y se recupere espacio de memoria.

1.2.3 Entorno de programacin Java

El lenguaje de programacin java requiere de una infraestructura necesaria para su desarrollo y


ejecucin, inicialmente veremos cmo estn constituidas sus plataformas de ejecucin y desarrollo,
posteriormente mencionaremos algunas aplicaciones que se pueden emplear como ambiente
ambientes de desarrollo para facilitar la programacin de aplicaciones.

JRE (Java Runtime Environment)

Es un paquete que contiene todo el software necesario para correr una aplicacin desarrollada en
Java, dentro del paquete esta contenida la librera de clases, que son programas generados en
java (bytecode) y que estn expresamente construidos para servir de apoyo para la construccin
de aplicaciones por parte del usuario, adems se cuenta con:

Libreras de integracin que permiten construir aplicaciones de comunicacin externa.


Libreras de interfase grafica de usuario AWT/Swing.
Libreras para el manejo de multimedia.
Una maquina virtual de java adecuada a la plataforma que permite ejecutar las aplicaciones.

JDK 2 (Java Distribution Kit 2)

Es el conjunto de herramientas para el desarrollo de aplicaciones en Java, esta compuesto por las
siguientes herramientas de programacin:

javac Compilador de java que se encarga de convertir cdigo fuente a bytecode de java.
jar Programa que se encarga de manipular libreras de clases ya compiladas y
empaquetadas.
javadoc Programa que se encarga de extraer documentacin automticamente partiendo de
los comentarios en el cdigo fuente.
jdb Depurador de programas.

Adems de las herramientas adicionales para desarrolladores, se agrega el paquete JRE que
contiene todas las libreras de clase y la maquina virtual en la que se producirn y ejecutaran las
aplicaciones.

Las herramientas de desarrollo esta disponible en 3 posibles versiones:

Edicin Micro: Se emplea en ambientes con recursos limitados.


Edicin Estndar: Es la edicin comnmente empleada por la mayora de los
programadores.
Edicin Empresarial: Es una edicin que posee una coleccin muy amplia de recursos
adicionales para transacciones en Internet, seguridad y acceso a recursos remotos.
1.2.4 Ambientes de desarrollo integral para Java

Los ambientes de desarrollo son aplicaciones que nos permiten escribir en un lenguaje de
programacin de manera sencilla, ya que se puede verificar gradualmente el producto que estemos
desarrollando. De esta forma el ambiente de desarrollo se encuentra totalmente independiente de
la plataforma de Java que se emplee, es decir que se puede emplear cualquier versin del kit de
desarrollo de software (JSDK) de Sun.

Existen varios ambientes de desarrollo en el mercado, los hay desde los libres que no tienen algn
costo, hasta las herramientas mas sofisticadas y caras del mercado. El lenguaje Java (plataforma
Java) y el ambiente de desarrollo integral no son una sola aplicacin, en tal caso debern ser
instaladas de manera independiente.

Se recomienda inicialmente instalar la plataforma de Java (JSDK) y posteriormente el ambiente de


desarrollo que mas se ajuste a sus necesidades. En la red existen disponibles varios ambientes
para el desarrollo de software como:

o NetBeans: una herramienta creada por una filial de Sun Microsystems, es una buena
herramienta de diseo aunque algo lenta si se cuenta con poca memoria principal. Permite
el diseo RAID (diseo rpido de interfase).
o Eclipse: una herramienta de distribucin libre bastante flexible en uso de recursos y fcil
de emplear debido a su poca complejidad, permite la opcin de auto-completar texto.
o Notepad++: es una herramienta amigable y fcil de emplear, cuenta con una versin libre
bastante austera y simple de integrar para los lenguajes ms comunes adems de Java.

Es importante recordar que en el mercado se encuentran disponibles varias distribuciones libres


para ambientes de desarrollo integral en Java, as que se deja al criterio del alumno el uso de
cualquiera de ellas.

Tambin se encuentra disponible una plataforma de diseo integral para Java, conocida como
Eclipse, desarrollada por IBM. Eclipse es algo mas que un simple ambiente de desarrollo integral
(JDT), ya que cuenta con su propio kit de desarrollo para compilacin (ECJ). Desde un principio se
considero a Eclipse como una distribucin libre para Java, por lo que su popularidad no se ha
disminuido ante su ms claro competidor Sun Microsystems. Desafortunadamente por cuestiones
de licencias Eclipse requiere la instalacin de JRE para mantener la portabilidad.

1.3 Fundamentos del Lenguaje Java

Cuando hablamos de lenguajes de programacin debemos tomar en cuenta ciertas convenciones y


consideraciones relativas a la manera en que trabaja el lenguaje de programacin, as como
observar los elementos de lenguaje ms bsicos que nos permiten entender el mecanismo de
programacin y los elementos del lenguaje.

1.3.1 Convenciones de escritura


La sintaxis del lenguaje nos describe la manera en como deben ser estructurados los programas
escritos en el lenguaje de programacin para que sean considerados como entidades validas, a
continuacin describiremos algunas convenciones bsicas para la escritura de programas Java.

Es importante recordar que los nombres de los identificadores en Java son sensibles a las letras
maysculas y minsculas. Para facilitar la lectura y mantenimiento de nuestros programas
aplicaremos las siguientes normas:
Cuando un nombre consta de varias palabras, se escribir una a continuacin de otra,
poniendo con mayscula la primera letra de cada palabra que sigue a otra (ejemplos:
elMayor(), RectanguloGrafico).

Los nombres de clases comenzarn siempre por mayscula (ejemplos: RectanguloGrafico,


Vector).

Los nombres de las interfaces comenzarn con la letra I.

Los nombres de los paquetes comenzarn con las letras pack.

Los nombres de objetos, mtodos, variables miembro y variables locales comenzarn


siempre por minscula (ejemplos: dibujar(), numRectangulos, x).

Los nombres de las variables finales, es decir de las constantes, se definirn en


maysculas (ejemplo: PI, MAXIMO).

Los nombres de los parmetros de los mtodos empezarn por la letra p (ejemplos:
pValor1, pResultado)

1.3.2 Palabras reservadas


Las palabras claves tienen un significado especial para el compilador de Java, ya que identifican el
nombre de un tipo de dato o una construccin de programa. Es decir son el conjunto de primitivas
que forman al lenguaje de programacin, adems de la estructura gramatical que forma el lenguaje
de programacin.

A continuacin se muestra el conjunto de primitivas del lenguaje


Java:

abstract continue for new switch


assert default goto package synchronized
bolean do if private this
break double implements protected throw
byte else import public throws
base enum instanceof return transient
match extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while

Las siguientes son notas importantes acerca de las palabras claves:

Las literales true, false y null se escriben en minsculas, estrictamente hablando no son
palabras claves.

No existe el operador sizeof que nos permita acceder a la memoria, pero se cuanta con otro
operador mas potente que nos permite manipular objetos propiamente.

Las palabras claves goto y const no son usadas en el lenguaje Java.

Comentarios
Los comentarios de documentacin se colocan inmediatamente antes de una declaracin (de
variables, mtodos o clases) indicando que los comentarios deben ser incluidos en alguna
documentacin que es generada de manera automtica (por ejemplo, los archivos HTML
generados por el comando javadoc) para servir como descripcin de los elementos declarados.
Existe el comentario en una sola lnea tipo C: // comentario. Y existe la documentacin en
bloque, que abarca un mayor numero de lneas, que comprende desde el inicio de bloque (/*)
hasta el final del mismo (*/).

/* Inicio de comentario
y el final del comentario */

Bloques de cdigo
En el lenguaje de programacin java un estatuto es una o ms lneas de cdigo que terminan con
punto y coma (;), por ejemplo:

total = a + b +c + d; tambin

total = a + b
+ c + d;

Un bloque, algunas veces llamado estatuto compuesto, es un grupo de estatutos encerrados entre
llaves de apertura y cierre ({}). Un bloque es til cuando se requiere agrupar estatutos.

{ // un bloque de estatutos
x = y +1;
y = x +1;
}

while ( i < long ) { // un bloque de estatutos puede estar


a = a + i; // contenido en otro bloque
If ( a == max ) { // y en otro bloque
b = b + a;
a = 0;
}
i = i + 1;
}

Unidad mnima de programacin


En el lenguaje de programacin java solo es posible construir clases, por lo que la unidad mnima
de programacin es la clase. Dentro de la definicin de una clase nicamente puede existir una
sola funcin main, que sera la responsable del inicio y fin de la ejecucin del programa, y a su
alrededor se encontraran todas las dems clases que formen parte del programa:

class NombreClase {
public static void main( String [] args )
{
System.out.println(" Hola mundo !!! ");
}
}

1.3.3 Tipos de datos, Variables y Operadores


El lenguaje de programacin Java cuenta con varios tipos de datos. Estos caen en dos grandes
categoras:
1. Datos Primitivos: Son aquellos tipos de datos que se encuentran inmersos en el lenguaje
y cuentan con un espacio fijo para su valor.

2. Datos Referenciados: En este grupo se encuentran los arreglos y los objetos de


cualquier tipo de clase que se tenga disponible en el API o que se construya por el
programador.

Los tipos primitivos son valores simples, no son objetos, de manera que se trata del tipo de dato
mas simple el cual puede ser claramente identificado y existe en un lugar especfico de la memoria.
Los tipos referenciados u objetos de una clase son tipos de datos compuestos.

Tipos de Datos
Primitivos
El lenguaje Java define ocho tipos primitivos, los cuales pueden ser considerados en cuatro
categoras:

o Lgicos boolean
o Texto char
o Enteros byte, short, int y
o Punto long
float y double
flotante

Lgicos
Los valores lgicos son representados usando los tipos bolanos, los cuales toman uno de dos
posibles valores literales: true (verdadero) false (falso). A continuacin se muestra un cdigo de
ejemplo que declara e inicializa una variable de tipo boolean.

boolean verdad = true;

No existe ajuste (cast) entre valores de tipo entero y bolanos, como ocurre en otros lenguajes de
programacin como C/C++. Solo pueden usarse cualquiera de las dos literales definidas.

Texto
Los caracteres simples son representados usando el tipo char. Un char representa un carcter de
16- bits en UNICODE. Los caracteres deben ser indicados como literales encerrados
en comilla simple ( ), por ejemplo:

La letra a
a
una tabulacin
\t

\u???? Un carcter especifico UNICODE, las interrogaciones (????) son reemplazadas con
exactamente cuatro dgitos hexadecimales. Por ejemplo \u03A6 es (phi)
Ahora mostramos un ejemplo de declaracin e inicializacin de una variable tipo carcter.

char ch = A;

Enteros
Existen cuatro tipos enteros en Java. Cada tipo es declarado usando una de sus palabras claves,
byte, short, int long. Se pueden crear literales de tipos enteros usando la forma decimal, octal
hexadecimal.

2 Forma decimal del numero 2


10
077 0 indica un nmero octal
0xBAAC 0x indica un nmero hexadecimal

Todas las literales enteras son de tipo int a no ser que se especifique lo contrario, es decir se
puede agregar al final de la literal numrica la letra L, que indica que el valor ser entero largo.

A continuacin se presenta una tabla con el tamao y rango que representan los nmeros:

Longitud Tipo Rango

7 7
8 bits byte de -2 a 2 -1
15 15
16 bits short de -2 a 2 -1
31 31
32 bits int de -2 a 2 -1
63 63
64 bits long de -2 a 2 -1

Punto flotante
Los tipos flotantes pueden declararse como float o double. A continuacin veremos algunos
ejemplos de numero flotantes. Las literales flotantes pueden incluir el punto decimal o el termino
exponente (E), adems de las letras F para float y D para double. Los nmeros flotantes en Java
ocupan 32 bits, mientras que los valores dobles ocupan 64 bits.

3.14 valor simple flotante (double)


6.02E23 valor de punto flotante largo
2.718F valor de punto flotante simple
123.4E+306D valor doble flotante

Variables, declaracin y asignacin


Las variables son los identificadores construidos para asignar valores que sern manipulados a lo
largo del programa. Las declaraciones de variables deben seguir la siguiente sintaxis:

<tipo de dato> identificador [ = valor ] ;

Las asignaciones siempre deben de corresponder al tipo de datos que se est manejando, existen
errores comunes de asignacin, como son:

int y = 3.1415926;
double w = 175,000;
boolean sw = 1;
float z = 3.14156;

Los identificadores comienzan con letra, guin bajo signo de dlar, y el resto de los caracteres
pueden ser dgitos. Recuerde que los identificadores son casos sensitivos.

Debido a que pueden emplearse caracteres no ASCII, tenga presente lo siguiente:

UNICODE puede soportar diferentes caracteres que lucen igual.


Los nombres de clase deben ser nicamente caracteres ASCII, debido a que la mayora de
sistemas no soportan UNICODE.
Un identificador no puede ser una palabra clave, pero puede estar compuesta como parte del
nombre.
El siguiente es un programa que muestra como declarar variables de distinto tipo de dato primitivo
y como es posible emplear el operador de suma para concatenarlo con una salida de datos, tome
en cuenta que al realizar una operacin dentro de una llamada a print deber emplear los
parntesis para hacer hincapi en la operacin aritmtica.

public class Main


{
public static void main( String [] args )
{
// delcaracion de variables locales
String mensaje = "Hola";
double a = 13.2345;
int b = 12;

System.out.println(mensaje + " mundo !!! ");


System.out.print("el total de " + a + " + " + b);
System.out.print(" es " + (a+b));
}
}

Ajuste de datos primitivos


El ajuste primitivo o cast, significa asignar el valor de un tipo de variable a una de otro tipo. Si dos
tipos son compatibles, Java realiza el ajuste automticamente. Por ejemplo un valor tipo int puede
ser asignado sin ningn problema a una variable tipo long (promocin).

En los casos donde la informacin se pueda perder en la asignacin, el compilador requiere que se
le confirme la asignacin a travs del operador cast.

Por ejemplo:

long big = 99l;


int medium = big // asignacin invalida
int medium = (int) big // cast aplicado

Es necesario que el tipo de dato destino sea encerrado entre parntesis y usado de manera prefija
indicando que la expresin debe ser modificada.

Las variables pueden ser promocionadas automticamente a tipos ms grandes (como de int a
long)

double x = 12.414F; // 12.414F es flotante, correcto


float y = 12.414; // 12.414 es doble, incorrecto

Cuando se realizan operaciones como la suma y los dos operndoos son de tipo de dato primitivo,
el tipo de dato resultante es determinado por el operando de tipo ms grande, por lo que en
algunos casos podra ser un problema de sobre flujo, por ejemplo:

short a, b, c;
a = 1; b = 2;
c = a + b;

Causa un error debido a que los tipos short involucrados en la operacin elevan las funciones al
tipo int por lo que se vuelve indispensable un ajuste, a no ser que la variable c sea declarada como
int, para subsanar este problema se sugiere realizar un cast en la operacin que permita el ajuste.
c = (short) (a + b);
Constantes
Java emplea la palabra clave final para indicarle al compilador de que las variables declaradas bajo
esta etiqueta debern comportarse como si fueran constantes. Esto indica que su valor no puede
ser modificado una vez que se haya declarado e inicializado. Las constantes se declaran de la
siguiente manera:

final double PI = 3.14159;


final char VALOR = S;
final String MENSAJE = Error;

Si se intenta cambiar el valor de las variables tipo final desde una aplicacin, se genera un error de
compilacin. Es importante recordar, como medida de diseo, que los nombres de las constantes
deben escribirse con letras maysculas para facilitar su ubicacin dentro del cdigo.

Tambin los las funciones miembro (mtodos) pueden ser de tipo final, en cuyo caso no podrn ser
sobrecargados.

Tipos de Datos Referenciados


Es aquel tipo de dato que almacena una direccin de memoria donde aloja la referencia a un
bloque de memoria asignado de manera dinmica. Aqu podemos encontrar varias clases que ya
se encuentran implementados dentro del API de Java, pero inicialmente podramos proporcionar
una clasificacin burda de la siguiente manera:

o Arreglo <tipo> [ ] <identificador>


o Cadena de caracteres String
o Wrappers Character, Byte, Short, Integer, ...
o Definidas por usuario class Identificador { }

o Tipo de dato Arreglo


Los arreglos son estructuras de datos que agrupan elementos del mismo tipo (homogneo). Los
arreglos nos permiten referirnos a grupos de objetos por un nombre comn.

Los arreglos unidimensionales, son aquellos arreglos que cuentan nicamente con una fila y con
una serie de columnas que determinan la dimensin del arreglo. En Java es posible crear arreglos
de cualquier tipo, ya sea datos primitivos o definido por el usuario (objetos).

Declaracin de arreglos unidimensionales


La sintaxis es la siguiente:

<tipo> [ ] <nombre-arreglo>;

Cuando queremos que una variable sea un arreglo nicamente anteponemos los corchetes, esto le
indica al compilador que la variable de la derecha ser una referencia de arreglo.

En el lenguaje Java un arreglo es un objeto an cuando el arreglo sea de tipos de datos primitivos,
adems como el resto de los objetos, la declaracin no crea el objeto por si mismo. En su lugar la
declaracin de un arreglo crea una referencia que puede ser empleada para un arreglo. El espacio
en memoria usado para los elementos del arreglo, es dinmico, por lo que es necesario emplear el
operador new para crear el espacio para los elementos del arreglo.
Creacin de referencias para arreglos
Se deben crear arreglos como objetos, empleando el operador new, por ejemplo, suponga la
creacin de un arreglo de caracteres (primitivo).

char[] s;
s = new char[26];
for ( int i=0; i<26; i++ ) {
s[i] = (char) ('A' + i);
}

El operador new crea un arreglo con 26 caracteres que sern inicializados cada uno de sus
elementos a carcter vaci (\u0000). De esta forma el arreglo esta listo para ser manipulado.
Recuerde que el lmite de los arreglos va de 0 a N-1.

Debe tomar en cuenta que todo objeto referenciado en java es por defecto un objeto de la clase
Object, la clase Object es la clase ms alta en la jerarqua de objetos referenciados y ms
adelante veremos que tiene varios mtodos y propiedades asociadas a l y que son transferidas al
resto de los objetos referenciados por medio de un esquema de herencia.

Observe como el objeto char [] s, es inicializado mediante el operador new, que es el


responsable de asignar un bloque de memoria temporal a todos los objetos referenciados. Ahora
debemos percatarnos que siendo un tipo de dato referenciado, como tal, tendr propiedades como
por ejemplo el nmero de elementos inicializados en l (length) que ser su longitud.

public class ArrayChar {


public static void main( String args [] )
{
char[] s;
int dim = 26;
s = new char[ dim ];
for ( int i=0; i < 26; i++ ) {
s[i] = (char) ('A' + i);
}
System.out.print("El abecedario es ");
for ( int i=0; i < s.length; i++ )
System.out.print(s[i]);
System.exit(0);
}
}

Inicializacin de arreglos
Cuando se crea un arreglo, cada elemento es inicializado. Para el caso del arreglo de caracteres
vimos que cada carcter es inicializado por defecto a (\u0000) lo que indica que an no ha sido
ingresado ningn dato dentro de la casilla.

Adems es posible crear inicializaciones de manera corta como la siguiente:

char [] vocales = { 'a', 'e', 'i', 'o', 'u'};

O tambin de manera equivalente:

char [] vocales;
vocales = new char [ 5 ];
vocales [0] = 'a';
vocales [1] = 'e';
Arreglos
multidimensionales
Java provee un mecanismo muy eficiente y sencillo para la construccin de arreglos
multidimensionales, solo es necesario indicar el numero de dimensiones con las que se desea
trabajar, es decir, as como con los vectores, solo es necesario agregar una dimensin usando los
corchetes.

Podemos crear arreglos multidimensionales de la siguiente manera:

int [ ][ ] matriz = new int [2][ ];


matriz[0] = new int [5];
matriz[1] = new int [3];
matriz[2] = new int [3]; /*** error fuera de ndice ***/

El objeto que es creado en la primera llamada con new es un arreglo que contiene dos elementos.
Cada elemento es una referencia nula (null) a un elemento de tipo array of int, y debe ser
inicializada cada elemento de manera separada, de manera que cada elemento apunta a su
arreglo. Debido a esto es posible crear matrices no-rectangulares.

En algunos casos esta inicializacin podra parecer tediosa, pues es ms comn emplear matrices
rectangulares, a continuacin vemos como sera la declaracin e inicializacin de una matriz de
enteros:

int [ ][ ] matriz = new int [4][5];

Veamos ahora un ejemplo de una matriz de valores dobles a la que se le asignan valores de
manera aleatoria empleando una funcin esttica llamado random() perteneciente a la clase Math,
veremos ms adelante que al igual que System.out, Math no requiere construir una instancia de la
misma para ser usada:

public class MatrizRand


{
public static void main( String args [] )
{
int f = 5, c = 2;
double m[][] = new double [f][c];
System.out.print("numero de filas " + f);
System.out.print("numero de columnas " + c);
for ( int i = 0; i < m.length; i++ )
{
for ( int j = 0; j < m[i].length; j++ )
m[i][j]= Math.random();
}
for ( int i=0; i < m.length; i++ )
{
for ( int j=0; j < m[i].length; j++ )
System.out.print(" ("+ i +"," + j + ") -> "
+ m[i][j]);
System.out.println();
}
System.exit(0);
}
}
Como ya se menciono los arreglos en java son objetos, por lo que el nmero de elementos que
pueden ser almacenados forma parte de sus atributos. Un acceso a un lmite fuera de su longitud
produce un error en tiempo de ejecucin (out of index). Se recomienda ampliamente emplear el
atributo length para iterar dentro de un arreglo.

Re-dimensin de arreglos
Despus de que ha sido creado un arreglo, no puede ser redimensionado su tamao. Sin embargo
puede ser empleada la misma referencia a la variable para declarar una nueva referencia del
arreglos por completo.

int [] arreglo = new int [6];


arreglo = new int [10];

En este caso, el primer arreglo pierde la referencia a todos sus componentes, a no ser que sean
almacenados en algn lugar previo a la nueva redefinicin del nuevo bloque de memoria dinmico.

o Tipo de dato String


Existen, adems de los arreglos, otro tipo de dato referenciado, la Clase String (o simplemente
String) los objetos de la clase String tienen la peculiaridad de almacenar la referencia a una literal
de caracteres (cadena de caracteres). Como objeto los Strings tienen una coleccin de mtodos
que les provn de una mayor funcionalidad con otros objetos.

La clase String es una de tantas clases incluidas en la librera de clases de Java (API). La clase
String provee la habilidad de almacenar secuencias de caracteres y manipularlas de forma sencilla
para almacenar literales. Los objetos String pueden ser declarados de dos maneras:

1. String nombre = new String(Juan Prez);


2. String nombre = Juan Prez;

La clase String es la nica que permite construir objetos de ese tipo sin emplear el operador new,
que es el empleado para crear cualquier objeto en Java.

Como hemos visto las referencias u objetos adquieren propiedades directas de una clase superior
llamada Object, para el caso de los datos referenciados como el String se tiene la propiedad length
que nos indica el numero de caracteres contenidos en un String. Pero es importante recordar que
dicha clase define muchas mas funciones que pueden resultar muy til para el manejo de cadenas.

A continuacin se comentan algunas de ellas, pero es importante recordar que se cuentan con
muchas ms. A continuacin asuma que s1 y s2 son objetos de tipo String:

public class Prueba {


public static void main(String [] args) {
String s1 = "hola";
String s2 = new String("mundo");
if ( s1.equals(s2) )
System.out.println("iguales");
else System.out.println("diferentes");

s1 = s1.toUpperCase();
s2 = s1.concat(s2);
String s3 = s2 + "bizarro".toUpperCase();
System.out.println(s3);
}
}
o s1.equals(s2), regresa verdadero (true) en caso de que los caracteres de s2 correspondan
exactamente con los de s1.
o s1.toUppercase(), regresa un objeto de tipo String con exactamente cada carcter de s1
en mayscula.
o s1.charAt(n), regresa como valor el n-simo carcter en un
String

Recuerde tambin que los objetos de tipo String pueden ser fcilmente concatenados empleando
el operador de +, por ejemplo:

String s1 = "Hola";
String s2 = "mundo";
String s3 = s1 + " " + s2;

Inclusive el objeto esttico System.out.print() puede concatenar una serie de valores sin importar el
tipo, por ejemplo:

int edad = 23;


System.out.println("Hola mi edad es " + edad);

En realidad el objeto String es el nico objeto en java que cuenta con las caractersticas de
concatenacin empleando el operador de + (suma) y asignacin directa empleando el operador =.
Desafortunadamente son los nicos operadores en java que tienen ese comportamiento, adems
es importante recordar que la sobrecarga de operadores no se encuentra disponible en el lenguaje
como tal, por lo que no es posible implementarla, como es el caso de C++ o C#.

Para el programador dedicado a la construccin de aplicaciones finales que tiene una gran
necesidad de manejar nombres e incluso cambios de valores entre tipos reconocer en este
lenguaje muchos beneficios que no son tan palpables en otros lenguajes de programacin.

Tambin es posible construir arreglos de tipo String, solo debe de recordar que para este caso
existen 2 mecanismos para obtener la longitud, una la del arreglo length (propiedad) y otro la
longitud total de caracteres por cada elemento length():

public class ArrayString


{
public static void main( String args [] )
{
String [] nombres = {"Moira", "Almudena", "Santiago"};

System.out.println("tamao del arreglo "


+ nombres.length + '\n');

for (int i = 0; i < nombres.length; i++)


System.out.println("nombre " + nombres[i] +
" tiene " + nombres[i].length() + " caracteres");
System.exit(0);
}
}

o Clases Envoltorio
(Wrappers)
Las clases envoltorio (Wrappers) son clases que proveen un mecanismo para interactuar con
algn otro tipo de dato abstracto. Para el caso de los tipos de datos primitivos, las clases envoltorio
son un mecanismo ms refinado de programacin para representar valores primitivos cuando un
Objeto es requerido.
Java provee ocho tipos de clases envueltas para datos primitivos:

Tipo primitivo Clase envoltorio Argumentos del constructor


byte Byte byte o String
short Short short o String
int Integer int o String
long Long long o String
float Float float, double o String
double Double double o String
char Character char
boolean Boolean boolean o String

Las clases Wrapper de primitivas numricas se derivan de la clase Number que deriva de Object.
Cada una de estas clases contiene un valor primitivo del tipo relacionado, por ejemplo un objeto
Integer contiene un valor int como atributo.

De manera que estas clases envoltorio (Wrappers) no son ms que clases que modelan los tipos
de datos primitivos tales como enteros flotantes, precisamente estos tipos primitivos son los
nicos elementos en Java que no son clases. Estos Wrappers nos permiten introducir algunos
conceptos interesantes de programacin, autoboxing que consiste en convertir un tipo de dato
primitivo a un tipo compuesto, mientras que por otro lado, automatic unboxing trata de convertir
un objeto compuesto a un valor primitivo. Este tipo de conversin es generalmente transparente al
usuario:

autoboxing, los valores enteros son empacados automticamente en un tipo Integer


empleando el operador de asignacin.

Integer i, j; // objetos
i = 5; // al objeto i se le asigna un valor nativo
j = 4;

unboxing, los valores son desempacados automticamente del tipo Integer a un tipo nativo
para ser procesados y finalmente se vuelve a empacar en un Integer.

Integer r = i + j;

Existe una diferencia significativa entre los tipos primitivos y sus wrapper; ya que los tipos
primitivos pasan como argumento por valor a los mtodos, mientras que los objetos pasan por
referencia. Esto implica una ventaja en cuanto a eficiencia, pues es posible modificar el valor de
una referencia tipo wrapper.

Por otro lado los wrappers ofrecen funcionalidad como clase estatica de manera que es posible
usar mtodos de alguna clase sin necesidad de crear un objeto. Por ejemplo la clase Integer
cuenta con un mtodo denominado parseInt que permite convertir una cadena de caracteres
alfanumrica a un valor de una base en particular:

String s = "0001101";
int x = Integer.parseInt(s,2); // x conserva el valor 13

Casi todos estos mtodos pueden utilizarse en forma esttica, de manera que, no siempre sea
necesario crear una instancia para manipularlos. Por ejemplo:

int i;
i = Float.valueOf(12.45).intValue();
Como se habr observado no existe una librera del tipo ctype de ANSI/C que nos permita
manipular caracteres de manera independiente, para ello se emplea la clase Character que cuenta
con varios mtodos que permite manipular caracteres simples.

Por ejemplo:

String s = "Madero 122";


char [] name = s.toCharArray();
for (int index = 0; index < name.length ; index++)
if ( Character.isDigit(name[index]) )
System.out.println("digito " + name[index]);
else if (Character.isLetter(name[index]))
System.out.println("letra " + name[index]);

Tambin es posible crear arreglos de objetos Wrapper, de manera que cada elemento del arreglo
corresponder a un objeto particular:

Double [] arreglo = {2.3,4.5};


Integer [][] matriz;

Operadores Lgicos, Relacionales y Aritmeticos


Los operadores son elementos del lenguaje que nos permiten construir expresiones, dichas
expresiones las podemos dividir bsicamente en: lgicas, relacionales y aritmticas. A continuacin
se explicaran por grupo los operadores disponibles en Java.

Operadores Lgicos los operadores lgicos evalan expresiones para obtener un resultado
boolean, que puede ser cierto (true) o falso (false). Los operadores bolanos soportados son !,
&, ^ y | para las operaciones algebraicas de NOT, AND, XOR y OR, respectivamente. Cada
una de estas regresa un resultado booleano. Los operadores && y || son equivalentes a los
operadores & y |.

Operadores Relacionales tambin existen los operadores ==, !=, >, >=, <, <= para las
operaciones de igualdad, diferente, mayor, mayor igual, menor, menor igual, respectivamente.

Operadores Aritmticos Java emplea exactamente los mismos operadores aritmticos que el
lenguaje C/C++, como +, -, * / y % para las operaciones de suma, resta, multiplicacin,
divisin y modulo, respectivamente. Adems existen los operadores combinados como el
incremento y decremento unitario ++ y --. Y combinaciones de asignacin con operacin
aritmtica, como *=,
+=, /=, %=, y que nos permiten realizar operaciones sintetizadas como X = X + Y en X +=
Y.

Como algo adicional Java implementa el operador condicional idntico al de C/C++:

<expresin_boolean>?<expresion1>:<expresion2>

Por ejemplo, si el valor lgico de una comparacin es cierta la primera expresin ser almacenada,
en caso contrario la expresin 2 ser asignada:

int x = (5 == 3) ? 1 : 0;

Precedencia de operadores
A continuacin se presenta una lista de los operadores descritos con anterioridad, en el listado se
presentan dichos operadores ordenados de mayor precedencia a menor precedencia:
Operacin Smbolo
operadores unarios ++, --, !, - +, type-cast
multiplicacin y divisin: *, /, %
suma y resta: +, -
operadores relacionales: <, >, <=, >=
igualdad y desigualdad: ==, !=
conjuncin: &&
disyuncin: ||
operador condicional: ?:
operadores de asignacin: =, +=, -=, *=, /=, %=

Los operadores aritmticos siguen las mismas reglas de precedencia que el resto de los lenguajes
que son: la multiplicacin y divisin, modulo, suma y resta. Para los operadores relacionales y
lgicos la interpretacin de evaluacin es de izquierda a derecha.

1.4 Clase
Math

Las funciones matemticas siempre son necesarias para construir ciertas operaciones que de otra
forma resultaran muy complicadas, Java cuenta con una clase llamada Math que tiene asociada
un nmero determinado de funciones, como hemos visto en el ejemplo anterior la funcin random
es capaz de generar un valor aleatorio de tipo double que es asignado a una variable de ese tipo.
A continuacin se mencionan algunas de las funciones estaticas de Math ms comunes, aunque
es importante recordar que se cuentan con muchas ms:

o Math.abs(x), que calcula el valor absoluto de un valor x.


o Algunas funciones trigonometritas como Math.sin(x), Math.cos(x),
Math.tan(x). o Math.pow(x,y), que calcula el valor de x elevado a la y
o La funcion Math.floor(x) que redondea a un valor proximo inferior y Math.round(x)
que regresa un valor entero cercano a x.
o Math.random(), que genera valores aleatorios en el rango de 0.0 <= x < 1.0.

1.5 Funciones de entrada y salida


estndar

La mayora de las aplicaciones deben interactuar con el usurario. Dichas interacciones estn
algunas veces acompaadas con datos de entrada y de salida a la consola (usando el teclado
como entrada estndar y la ventana de Terminal como salida).

Java soporta la entrada y salida de datos desde consola empleando 3 tipos de variables, que estn
contenidas en la librera de clases de java (System). Referenciada como java.lang.System:

La variable System.out es un objeto PrintStream que se refiere (inicialmente) a la


ventana de Terminal donde las aplicaciones son ejecutadas.

La variable System.in es un objeto InputStream que se refiere (inicialmente) al teclado


del usuario.

La variable System.err es un objeto de tipo PrintStream que se refiere (inicialmente) a


la ventana de Terminal.

20
El manejo de entrada y salida de datos en java no es uno de los ms eficientes entre los lenguajes
de programacin actuales, de hecho resulta bastante frustrante al inicio, pero gradualmente se

21
llega a entender el mecanismo empleado principalmente empleado en la entrada de datos
estndar.

1.5.1 Salida de datos por pantalla

La salida de datos se realiza a travs de la funcin print y println del objeto System.out, esto indica
que la salida de datos ser directa. Los mtodos imprimen objetos Strings por defecto por lo que
no es necesario indicar la tipificacin en una plantilla. El mtodo print imprimir strings (elementos
concatenados) directamente en la salida y el cursos permanecer en el punto siguiente a la
impresin, por el otro lado println imprimir un salto de lnea despus de su ejecucin.

System.out.println(Valor + 12 + + valor + 12.22);

1.5.2 Lectura de datos por teclado

La entrada de datos se puede realizar bsicamente de 3 maneras distintas, partiremos desde un


esquema que se empleaba en un inicio y llegaremos hasta un esquema muy sencillo que se
emplea en las versiones ms recientes.

Entrada de flujo de bytes es uno de los esquemas mas empleado en las primeras versiones de
java, empleamos la llamada al mtodo read() del objeto System.in. Desafortunadamente es
indispensable emplear el bloque trycatch, pues la capturan filas de bytes provoca errores.
Debido a esta deficiencia en el funcionamiento, es necesario depositar los bytes en un arreglo de
caracteres, y as posteriormente ser transformados a tipos nativos como texto (string), entero o
real. Para esto emplearemos un objeto de la clase StringBuffer que permita manipular un String
como pila de caracteres, depositando cada uno de los caracteres capturados desde teclado.

import java.io.*;

public class Captura1


{
public static void main(String[] args)
{
String str;
System.out.print("Dame un texto ");
// creamos un objeto para depositar los caracteres
StringBuffer buffer = new StringBuffer();
char c;
try {
// capturamos caracteres hasta encontrar un enter
while ( (c = (char) System.in.read() )!='\n' )
//los depositamos en el buffer
buffer.append(c);
} catch(IOException ex){ }
// convertimos el buffer en string
str = buffer.toString().trim();
System.out.println("la cadena 1 es " + str )
//eliminamos el contenido para usarlo nuevamente
buffer.delete(0,buffer.length());
// capturamos ahora un numero
float valor;
System.out.print("Dame un numero ");
try {
// capturamos caracteres hasta encontrar un enter
while ( (c = (char) System.in.read() )!='\n' )
buffer.append(c);
} catch(IOException ex) { }
// convertimos el buffer en flotante
valor = Float.parseFloat(buffer.toString().trim());
System.out.println("el valor es " + valor);
}
}

Entrada de flujo de caracteres la captura de bytes siempre resulta muy complicada por lo que
resulta mas sencillo capturar caracteres Unicode, para esto se desarrollaron dos objetos que
podran facilitar esta tarea. InputStreamReader es una clase que nos permite direccionar el flujo de
entrada a algn dispositivo especifico, en este caso System.in. Una vez que esta indico el flujo de
entrada, es necesario almacenar los caracteres entrantes en un objeto que nos permita manipular
cadenas de caracteres (string), para ello emplearemos un objeto BufferedReader el cual nos
permitir almacenar la entrada de datos.

import java.io.*;

public class Captura2

{
public static void main(String [] arg) {
String s;
// crea un lector de buffer para leer cada linea de teclado
InputStreamReader lector = new InputStreamReader(System.in);
// crea un buffer para almacenar la entrada de lector
BufferedReader in = new BufferedReader(lector);
System.out.print("captura de texto ");
try {
// captura los datos de teclado
s = in.readLine();
System.out.println("texto :" + s);
} catch(IOException e) {}
System.out.print("captura de valor ");
try {
// captura los datos de teclado
s = in.readLine();
// transforma el texto en numero
int valor = Integer.parseInt(s);
System.out.println("valor :" + valor);
in.close(); // cerramos el flujo de entrada
} catch(IOException e) {}
}
}

Entrada de flujo de tipos primitivos y strings en la ltima versin de java se incorporo un


mecanismo que nos permite manipular la entrada de datos de manera ms sencilla, transparente y
menos complicada. Para la captura se emplean expresiones regulares, es decir, el objeto
fragmenta la entrada de datos en componentes o unidades independientes separadas por espacios
en blanco. La clase Scanner cuenta con bastantes mtodos que facilitan la captura de datos, a
continuacin se presenta un ejemplo sencillo de su uso, se deja al lector investigar el resto.

import java.io.*;
import java.util.Scanner;
public class Captura3
{
public static void main(String [] arg)
{
Scanner s = new Scanner(System.in);
// objeto Scanner con entrada a teclado
System.out.println("ingresa el texto ");
// el metodo next captura Strings y desplaza la entrada
String str = s.next();
System.out.println("la cadena es "+ str);
System.out.println("ingresa el numero ");
// el metodo nextFloat captura reales y desplaza la entrada
float valor = s.nextFloat();
System.out.println("el numero es "+ valor);
// es indispensable cerrar el flujo de entrada
s.close();
}
}
Glosario de trminos

Atributo: es el conjunto de caractersticas que define las propiedades de un objeto,


generalmente se conocen como variables del objeto.

Clase: es un programa de computadora que construye, destruye y especifica la informacin,


las operaciones y los mtodos, de objetos de un mismo tipo (equivale a la generalizacin de un
objeto). De esta forma, los objetos son entonces instancias o ejemplares de las clases

HTML: Lenguaje de hipertexto empleado para construir paginas en Internet

IDE: Ambiente de desarrollo integral (Integrated development environment).

Java: Lenguaje de programacin orientado a objetos multiplataforma

Java Applets: Pequeos programas automatizados que pueden ser incrustados en paginas
Web.

JRE: Ambiente de ejecucin para aplicaciones Java

JSDK: Conjunto de herramientas para el desarrollo de aplicaciones Java

JVM: Maquina virtual de Java (Java Virtual Machina).

Mtodos: son pequeos programas o procedimientos altamente independientes asociados a


caractersticas especificas del objeto.

Objetos: son cajas negras que mantienen ocultas propiedades estructurales llamadas atributos,
y propiedades de comportamiento llamadas operaciones o mtodos.

Package los paquetes son colecciones de clases distribuidas (organizadas) en directorios y por lo
general se encuentran relacionadas entre si. El nombre de los paquetes se escriben en
minsculas.

package proyecto.objetos

Clases los nombres de las clases deben ser sustantivos (desde un punto de vista meramente
didctico se le define como el tipo de palabra que significa persona, animal o cosa concreta o
abstracta), en algunos casos mezclados, con la primera letra de cada palabra en mayscula.

class EjemploUno

Mtodo los nombres de los mtodos deben ser verbos, con palabras mezcladas, con la primera
letra en minscula. En caso de emplear mas palabras se le recomienda hacer la primera letra
mayscula.

calculaPromedio()

Variables todas las variables pueden ser mezclas de palabras procurando emplear la letra
minscula para la primera y empleando las letras maysculas para separar al resto de las palabras.

apellidoPaterno

Procure limitar el empleo de variables simples (a, b, , x) para el manejo de bucles de control.
Constantes se recomienda el uso de las constantes con letras maysculas, separando las
palabras con guin inferior.

TOPE_MAXIMO

Bibliografa

Nell Dale, Chip Weems, Mark Headington, Programming and Problem Solving whith Java, Jones &
Bartlett, 2005, ISBN: 0-7637-3069-6.

Luis Joyanes Aguilar y Matilde, Java 2 Manual de programacin, Osborne-Mc Graw Hill.

Potrebbero piacerti anche