Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Unidad I: Introducción
Historia de Java
Biblioteca de clases de Java
Fundamentos de un entorno Java típico
Introducción a la programación en Java
Los programas en Java consisten en piezas llamadas clases y métodos. Podemos programar
cada pieza que vayamos a necesitar para formar un programa java, pero la mayoría de los
programadores que usan Java aprovechan las ricas colecciones de clase y métodos que existen
ya en las bibliotecas de clases de Java. El aprendizaje de java consiste en: Primero: aprender el
lenguaje para poder programar clases y métodos propios y el segundo aprender a usar las
clases y métodos de las extensas bibliotecas de clases de Java.
1
Folleto elaborado por: MSc. Janine Mairena Solorzano
La ventaja de crear clase y métodos propios es que se conoce con exactitud su funcionamiento
y es posible examinar el código Java. La desventaja es el tiempo y el esfuerzo que hay que
invertir en el diseño y desarrollo de clases y métodos nuevos.
Los programas Java normalmente pasan por cinco fases antes de ejecutarse Fig. (1.1). Estas
son:
1. EDITAR
2. COMPILAR
3. CARGAR
4. VERIFICAR
5. EJECUTAR
La fase 1 consiste en editar un archivo. Esto se hace con un programa editor, almacenándolo
en un dispositivo de almacenamiento secundario como un disco. Los nombres de archivo de
los programa en Java terminan con extensión .java. dos editores que se utilizan mucho en los
sistemas UNÍS son vi y emacs. En Windows 95 y NT son suficientes programas de edición
sencillos como el comando EDIT del DOS y el programa Notepad de Windows.
javac Welcome.java
2
Folleto elaborado por: MSc. Janine Mairena Solorzano
La fase 3 se llama carga. Antes de que el programa pueda ejecutarse, es necesario colocarlo
en la memoria. Esto lo hace un cargador de clases que toma el archivo (o archivos) .class que
contiene los códigos de bytes y los transfiere a la memoria. El archivo .class puede cargarse de
un disco de su sistema o a través de una red.
El cargador de clases comienza a cargar archivos .class en dos situaciones. Por ejemplo, el
comando:
java Welcome
invoca el interprete java para el programa Welcome y hace que el cargador de clases cargue la
información empleada en el programa Welcome. Llamamos al programa Welcome una
aplicación. Las aplicaciones son programas que son ejecutados por el interprete de Java. El
cargador de clases también se ejecuta cuando una applet de Java se carga en un navegador de
la WWW, como Navigator de Netscape o HotJava de Sun.
Las applets (la terminación “let” en ingles denota un diminutivo, por lo que el termino applet
significa “aplicacioncita”) son programas de Java que normalmente se cargan de la Internet
mediante un navegador. Se cargan cuando el usuario curiosea un documento en HTML
(Hypertext Markup Language: Lenguaje de marcado de hipertexto) que contiene a la applet.
también pueden ejecutarse desde la línea de comando utilizando el comando appletviewer
incluido en Java Developer’s Kit (JDK): un conjunto de herramientas que incluye al
compilador (javac), al interprete (java), a appletviewer y a otras herramientas empleadas por
los programadores de Java.
Appletviewer Welcome.html
Esto hace que el cargador de clases cargue la información utilizada en la applet Welcome.
Appletviewer es como el navegador o browser mínimo, pues solo sabe como interpretar las
applets.
Antes de que el interprete o appletviewer pueda ejecutar los códigos de bytes, estos son
verificados por el verificador de códigos de bytes en la fase 4. Esto asegura que los códigos
de bytes son validos y que no violan las restricciones de seguridad de Java. Ya que los
programas Java que llegan por la red podrían causar daños a los archivos y al sistema de
usuario.
3
Folleto elaborado por: MSc. Janine Mairena Solorzano
Memoria primaria
Cargador de
clases
El cargador de clases coloca código de
Bytes en la memoria.
Disco
Memoria primaria
Verificador de
códigos de bytes
El verificador de códigos de bytes
Confirma que todos los códigos sean
Validos y que no se violen las restricciones
De seguridad de Java.
Memoria primaria
Interprete
El interprete lee códigos de bytes y los
traduce a un lenguaje que la computadora
pueda entender, tal vez almacenando
valores de datos conforme los ejecuta el
programa.
4
Folleto elaborado por: MSc. Janine Mairena Solorzano
Una aplicación en java es un programa que se ejecuta utilizando el interprete de java. Todo
programa en java consiste de cuando menos, una declaración de clase, que el programador
debe definir y se conocen como clase definida por el programador o por el usuario debe ser
una declaración publica de una clase, al nombre de la clase se le conoce como identificador y
debe comenzar con letra mayúscula y puede contener letras, dígitos, subrayado ( _ ) y signos
de moneda ( $ ) y no puede tener espacios en blanco, Kava es sensible a mayúsculas y
minúsculas. Esta clase debe ser declarada de tipo publica. Cuando se guarda su declaración de
clase public en un archivo, el nombre de este debe ser el nombre de la clase seguido de la
extensión .java
Una llave izquierda { comienza el cuerpo de la declaración de una clase y una llave derecha }
termina la declaración de una clase.
Toda aplicación en Java comienza con el método main los paréntesis después del main indican
que este es un bloque de construcción del programa, al cual se le llama método. Las
declaraciones de clases generalmente contienen uno o mas métodos, en una aplicación solo
uno de los métodos debe llamarse main. Las llaves { } definen el cuerpo de la declaración del
método.
Ejm:
// Bienvenido.java
// Programa para imprimir texto.
System.out se conoce como el objeto de salida estándar, permite a las aplicaciones mostrar
conjunto de caracteres en la ventana de comando, desde la cual se ejecuta la aplicación en
Java.
// Bienvenido1.java
// Imprime una línea de texto con varias instrucciones
5
Folleto elaborado por: MSc. Janine Mairena Solorzano
// Bienvenido2.java
// Imprime varias lineas de texto en una sola instruccion.
// Paquetes de Java
import javax.swing.JOptionPane; /* El programa usa clase JoptionPane del paquete
javax.swing */
}
}
El paquete javax.swing contiene muchas clases que ayudan a los programadores en Java a
crear Interfaces Graficas de Usuario (GUI) para las aplicaciones.
System.exit(0); Se requiere para terminar cualquier aplicación que muestre una interfaz
grafica de usuario. (La clase siempre va en letra mayúscula, el método no). La clase System es
6
Folleto elaborado por: MSc. Janine Mairena Solorzano
parte del paquete java.lang, que no fue importada en el programa, ya que se importa en todos
los programas de manera predeterminada, siendo el único paquete que no requiere una
declaración import. El argumento ( 0 ) indica que el programa termino correctamente(un valor
distinto indica error).
// Paquetes de Java
import javax.swing.JOption.Pane;
// mostrar el resultado
JOptionPane.showMessageDialog ( null, “La suma es “ + suma,
“Resultados”, JOptionPane.PLAIN_MESSAGE );
System.exit( 0 );
7
Folleto elaborado por: MSc. Janine Mairena Solorzano
8
Folleto elaborado por: MSc. Janine Mairena Solorzano
El lenguaje Java facilita un enfoque disciplinado del diseño de programas para computadora.
Comenzaremos por considerar un applet sencilla que exhibe una línea de texto
Cuando guardamos una applet en un archivo, usamos el nombre de clase de la applet como
parte del nombre de archivo. En nuestro caso, el nombre del archivo seria: Welcome.java
son enunciados import, que cargan las clases necesaria para compilar un programa de
Java. Estas líneas le dicen al compilador que debe cargar la clase Applet del paquete
java.applet y la clase Graphics del paquete java.awt. Para crear una applet en java es
necesario importar la clase Applet. Importamos la clase Graphics para que el
programa pueda exhibir información en la pantalla.
3 La línea
inicia una definición class de applet para la clase Welcome. La palabra clave class
(clase) introduce una definición de clase en java y va seguida inmediatamente por el
nombre de la clase (Welcome). Todo programa en java debe tener por lo menos una
definición de clase. Cuando creamos una definición de clase, siempre utilizamos partes
de una definición de clase ya existente. Java proporciona un mecanismo llamado
herencia para crear clases nuevas que utilizan parte de definiciones de clase ya
existentes. La palabra clave extends (extiende) seguida de un nombre de clase indica
9
Folleto elaborado por: MSc. Janine Mairena Solorzano
la clase de la cual nuestra nueva clase heredara algunas partes. Todas la applets de
java deben heredar de la clase Applet, en la relación de herencia Applet es la
superclase o clase base y Welcome es la subclase o clase derivada.
Las clases sirven para ejemplarizar ( o crear) objetos en la memoria que se usaran en
un programa. Un objeto es una región de la memoria de la computadora en la que se
almacena información para ser utilizada por el programa. Nuestra clase Welcome sirve
para crear un objeto que ejecuta la applet. El navegador en el que ejecutamos la applet
es el que se encarga realmente de crear un ejemplar de la clase Welcome para
nosotros.
La palabra clave public (publica) permite al navegador crear y ejecutar nuestra applet.
En Java la clase principal de applets ( la que hereda de Applet) siempre es una clase
publica.
La llave izquierda { inicia el cuerpo de toda definición de clase. Una llave derecha }
correspondiente debe terminar toda definición de clase.
4 La línea
10
Folleto elaborado por: MSc. Janine Mairena Solorzano
Las líneas 1 y 4 indican el principio y final de las condiciones HTML. Las líneas 2 y 3 son
etiquetas HTML especiales para las applets de Java; le indican al navegador que deben cargar
una applet especifica y definen el tamaño de la applet en el navegador. La primera parte (
code= Welcome.class) indica el archivo que contiene la clase de applet compilada que hemos
definido. Cuando compilamos un programa en Java, cada clase se compila en un archivo
individual que tiene el mismo nombre que la clase y termina con la e extensión .class. La
segunda y tercera parte indican la anchura (width) y la altura (height) de la applet en pixeles.
La esquina superior izquierda de la applet siempre esta en la coordenada x 0 y en la
coordenada y 0.
Para demostrar nuestra applet, usamos el comando appletviewer del Java Developer’s Kit
(JDK). Es un programa que prueba applets de Java; solo entiende la etiqueta HTML applet,
por lo que también se conoce como “el navegador mínimo”. Invocamos appletviewer para la
applet Welcome desde la línea de comando de nuestra computadora.
Appletviewer Welcome.html
11
Folleto elaborado por: MSc. Janine Mairena Solorzano
Nuestro siguiente programa toma enteros que el usuario digita en el teclado, calcula la suma
de estos valores y exhibe el resultado. Cuando el usuario teclea un entero y presiona Enter, el
programa lee el entero y lo suma al total.
Este programa emplea algunos componentes de interfaz grafica con el usuario (GUI) de la
Java API. Los componentes de GUI son piezas que facilitan la introducción de datos por parte
del usuario del programa y la salida de datos por parte del programa.
1 // Programa de suma
2 import java.awt.*; //importar el paquete java.awt
3 import java.applet.Applet;
4
5 public class Addition extends Applet {
6 Label prompt; //solicitar entrada al usuario
7 TextField input; //introducir valores aquí
8 int number; //almacenar valor introducido
9 int sum; //almacenar suma de enteros
10
11 //preparar componentes de interfaz grafica de usuario
12 // e inicializar variables
13 public void init()
14 {
15 prompt = new Label ("Teclee un entero y pulse Enter:");
16 input = new Textfield(10);
17 add( prompt ); //poner prompt (solicitud) en la applet
18 add( input ); //poner input (entrada) en la applet
19 sum = 0; //hacer sum igual a cero
20 }
21
22 //procesar la acción del usuario en el campo de texto de entrada
23 public boolean action( Event e, Object o )
24 {
25 number = Integer.parseInt( o.toString() ); //obtener numero
26 input.setText( "" ); //despejar campo de entrada de datos
27 sum = sum + number; //suma number a sum
28 showStatus( Integer.toString( sum ) ); //mostrar resultado
29 return true; //indica que la acción del usuario se proceso
30 }
31 }
12
Folleto elaborado por: MSc. Janine Mairena Solorzano
Import java.awt.*; Importa el paquete java.awt con todas las clases del paquete para la
compilación. Aquí se usaran las clases TextField y Label del paquete java.awt. Cuando
importamos un paquete completo, el compilador solo importa las clases que se usan en el
programa.
Label y TextField son objetos con información que el programa usa. Las variables y los
objetos son similares solo que un objeto se define mediante una definición de clase que puede
contener tanto información como métodos, una variable se define mediante un tipo de datos
primitivos (o integrado) . Cada elemento de datos en un programa Java es un objeto, con
excepción de las variables de tipo primitivo.
TextField (campo de texto) sirven para obtener información que el usuario introduce mediante
el teclado, o para exhibir información en la pantalla.
Label (rotulo) contiene una literal de cadena que se exhibe en la pantalla. Normalmente cada
rotulo esta asociado a otro elemento de la interfaz grafica en la pantalla ( como el campo de
texto en este programa).
Una variable debe de ser declarada antes de ser utilizada y termina con un punto y coma (;).
Un nombre de variable o de referencia es cualquier identificador valido . Un identificador es
una serie de caracteres que consiste en letras, dígitos, subrayados (_) y signos de dólar ($) que
no comienzan con un digito. Permite identificadores de cualquier longitud y es sensible a
mayúsculas y minúsculas. Es posible colocar declaraciones en una definición de método pero
debe aparecer antes que se use dicha variable.
Esta applet contiene dos métodos init y action. El método init se incluye en una applet para
inicializar las variables y referencias que se usan en la applet, se invoca automáticamente
cuando la applet comienza su ejecución, y se garantiza que será el primer método invocado.
De hecho las applets siempre comienzan con una serie de tres llamadas a métodos: init, start
y paint .
Si no definimos cualquiera de estos tres métodos, obtendremos de la clase Applet una versión
“gratuita” del método, el cual no hará nada. Esta es una de las razones por las que heredamos
todas las applets de la clase Applet.
El método action (acción) procesa interacciones entre el usuario y los componentes de interfaz
grafica con el usuario (GUI) de la applet. Una iteración entre un usuario y un componente
GUI genera un evento. Los eventos indican a la applet que el usuario esta interactuando con
uno de los componentes de GUI de la applet. Por ejemplo cuando introducimos un valor en el
campo de texto y pulsamos ENTER, se envía un evento ( que es un objeto de la clase Event
del paquete java.awt) a la applet, indicando que el usuario pulso la tecla enter en el campo de
texto. Esto hace que se ejecute de inmediato el método action. Este procesamiento de
interacciones del usuario con componentes GUI se conoce como programación controlada
por eventos.
13
Folleto elaborado por: MSc. Janine Mairena Solorzano
La línea:
crea un objeto Label que se inicializa con la literal “Teclee un entero y pulse Enter:"
Usamos esta cadena para rotular el campo de texto input en la applet. El operador new crea un
objeto durante la ejecución del programa pidiéndole a la computadora suficiente memoria para
almacenar un objeto del tipo que se especifica a la derecha de new. El valor entre paréntesis se
usa para inicializar el objeto creado.
Crea un objeto TextField empleando el operador new y asigna el resultado a input. El numero
10 especifica el tamaño en caracteres del campo de texto en la pantalla.
Las líneas:
add( prompt );
add( input );
colocan los componentes label y TextField en la applet para que el usuario pueda interactuar
con ellos. El método add es uno de los muchos métodos de la clase Applet que heredamos
cuando definimos la clase Addition.
Recibe dos argumentos: un Event (evento) y un Object (objeto). El argumento Event sirve
para determinar que evento ocurrió. Object contiene información especifica para el evento. En
el programa contiene el texto que estaba en el campo de texto. Object puede ser un objeto de
cualquier tipo (excepto variable); es el tipo mas genérico en el lenguaje de Java.
El método toString permite convertir cualquier objeto de cualquier tipo de clase en un String
(cadena).
Utiliza el método SetText de la clase TextField para asignar la cadena vacía al campo de texto
input, borrando el texto que el usuario haya dejado en el campo de texto.
14
Folleto elaborado por: MSc. Janine Mairena Solorzano
Después de realizar el calculo, exhibimos el resultado en la barra de estado que esta en la parte
inferior de la ventana de appletviewer ( o del navegador).
Utiliza el método showStatus de la clase Applet para colocar un String en la barra de estado.
El String que se exhibe es el resultado del método Integer.toString(sum) que toma el entero
sum y lo convierte en un String.
Le indica a action que devuelva el valor true a la applet cuando haya terminado su tarea. Esto
le dice a la applet que ya se proceso la acción del usuario que causo el evento.
15
Folleto elaborado por: MSc. Janine Mairena Solorzano
Es el único operador ternario de Java: requiere tres operándoos. El primer operando es una
expresión bolean, el segundo la expresión si la condición es verdadera y el tercero la expresión
si la condición es falsa.
Operadores
()
++ -- + - (unario)
* / %
+ - (aditivo)
< <= > >=
== !=
? : condicional
= += -= *= /= %=
16
Folleto elaborado por: MSc. Janine Mairena Solorzano
Secuencia Descripción
\n Nueva línea. Coloca el cursor al principio de la siguiente línea
\t Tabulación horizontal
\r Retorno de carro. Coloca el cursor al principio de la línea actual; no avanza
a la siguiente línea
\\ Imprime el carácter de diagonal invertida
\’ Imprime un carácter de apostrofo
\” Imprime un carácter de comillas
17
Folleto elaborado por: MSc. Janine Mairena Solorzano
3.1 Estructura if
if (condición)
enunciado;
Ejm:
if (condición)
enunciado V;
else
enunciado F;
Ejm:
if (condición 1)
enunciado 1;
else if (condición 2)
enunciado 2;
else if (concisión 3)
enunciado 3;
else
enunciado;
18
Folleto elaborado por: MSc. Janine Mairena Solorzano
Ejm:
Hay que tener cuidado con la interpretación del compilador, por ejemplo: la siguiente
estructura:
if ( x > 5 )
if ( y > 5 )
System.out.println( “x y y son > 5” );
else System.out.println( “x es <= 5” );
if ( x > 5 )
if ( y > 5 )
System.out.println( “x y y son > 5” );
else System.out.println( “x es <= 5” );
if ( x > 5 ) {
if ( y > 5 )
System.out.println( “x y y son > 5” );
}
else System.out.println( “x es <= 5” );
Si se desean incluir varios enunciados en el cuerpo de un if, debemos encerrarlos entre llaves .
Un grupo de enunciados contenidos dentro de un par de llaves es un enunciado compuesto.
19
Folleto elaborado por: MSc. Janine Mairena Solorzano
Ejm:
if ( calif >= 60 )
System.out.println( “Aprobado” );
Else {
System.out.println( “Reprobado” );
System.out.println( “Debe cursar otra vez la materia” );
}
while (condición)
sentencia;
while (condición) {
sentencia 1;
sentencia 2;
sentencia N;
}
do{
enunciado
}
while (condición);
20
Folleto elaborado por: MSc. Janine Mairena Solorzano
switch (expresión) {
case valor1:
sentencia;
break;
default:
sentencia;
break;
}
break solo puede causar la salida de la estructura while, for, do/while o switch que lo
encierra directamente. Si queremos salir de una serie de estructuras anidadas o cíclicas,
podemos usar break rotulado, utilizando
break stop;
Ejemplos:
// Promedio1.java
// programa del promedio de una clase mediante la repetición controlada por contador while
import javax.swing.JOptionPane;
total = 0;
cont = 1;
21
Folleto elaborado por: MSc. Janine Mairena Solorzano
} // end while
// fase de terminacion
promedio = total / 10;
} // end main
// Promedio2.java
// Promedio de una clase controlado por centinela while
import java.text.DecimalFormat; // clase para dar formato a los números
import javax.swing.JOptionPane;
String calif;
total = 0;
cont = 0;
22
Folleto elaborado por: MSc. Janine Mairena Solorzano
} // end while
// calcular el promedio
promedio = (double) total / cont;
} // fin del if
else // si no se introdujo calificacion
JOptionPane.showMessageDialog( null, "No se introdujeron calificaciones",
"Promedio de la clase", JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );
23
Folleto elaborado por: MSc. Janine Mairena Solorzano
// ContadorWhile.java
// Applet
import java.awt.Graphics;
import javax.swing.JApplet;
int cont = 1;
} // fin while
} // fin de la clase
// ContadorFor.java
// dibuja lineas en el fondo del applet
import java.awt.Graphics;
import javax.swing.JApplet;
24
Folleto elaborado por: MSc. Janine Mairena Solorzano
/* Una persona invierte $1000.00 en una cuenta de ahorro que produce el 5% de interés.
Suponiendo que todo el interés se deposita en la cuenta, calcule e imprima el monto de dinero
en la cuenta al final de cada año, durante 10 años. Use la siguiente formula para determinar el
monto: c = p(1+t)n : donde p es el monto que se invirtió originalmente; t es la tasa de interés
anual; n es el numero de años; c es la cantidad depositada al final del n-esimo año */
// Interes.java
// Calculo del interes compuesto
import java.text.NumberFormat; // clase para el formato numerico
import java.util.Locale; // clase para información especifica de cada pais
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
} // fin for
// mostrar resultados
JOptionPane.showMessageDialog( null, areaTextoSalida,”Interes Compuesto",
JOptionPane.INFORMATION_MESSAGE );
25
Folleto elaborado por: MSc. Janine Mairena Solorzano
System.exit( 0 );
} // fin main
} // fin de la clase Interes
Ciclo do while
// PruebaDoWhile.java
import java.awt.Graphics;
import javax.swing.JApplet;
int cont = 1;
do {
g.drawOval( 110 - cont * 10, 110 - cont * 10,
cont * 20, cont* 20 );
++cont;
} while (cont <= 10 );
} // fin Saint
} // fin clase
// PruebaSwitch.java
// Dibuja lineas, rectangulos u ovalos con base en la entrada del usuario
import java.awt.Graphics;
import javax.swing.*;
26
Folleto elaborado por: MSc. Janine Mairena Solorzano
opcion = Integer.parseInt(entrada );
} // fin switch
} // fin for
} // fin paint
} // fin de la clase
27
Folleto elaborado por: MSc. Janine Mairena Solorzano
Hay dos tipos de módulos en Java: métodos y clases. La API de java proporciona una vasta
colección de clases que contienen métodos para realizar cálculos matemáticos, manipulaciones
de cadenas, manipulaciones de caracteres, operaciones de entrada / salida, comprobación de
errores y muchas otras operaciones útiles. Las clases de la API de Java forman parte del Kit de
desarrollo de software para Java 2 (J2SDK), el cual contiene miles de clases preempacadas.
Entre las razones para crear un programa en módulos por medio de los métodos es la
metodología divide y vencerás hace que el desarrollo de programas sea mas fácil de
administrar. Otra razón es la reutilización de software (usar los métodos existentes como
bloques de construcción para crear nuevos programas).
Permite realizar cálculos comunes. Para llamar a un método se escribe su nombre seguido de
un paréntesis de apertura, después su argumento ( o una lista de argumentos separados por
comas) y al final un paréntesis de cierre.
Ejm:
No es necesario importar la clase Math para utilizar sus métodos. Math es parte del paquete
java.lang, el cual se importa automáticamente por el compilador. Los argumentos pueden ser
constantes, variables o expresiones. Ejm:
3. System.out.println( Math.sqrt( c + d * f );
28
Folleto elaborado por: MSc. Janine Mairena Solorzano
29
Folleto elaborado por: MSc. Janine Mairena Solorzano
Los métodos pueden devolver como máximo un valor. Los parámetros se declaran en una lista
separada por comas, encerrada entre paréntesis, que declara el tipo y nombre de cada uno de
los parámetros. Debe haber un argumento en la llamada al método para cada parámetro en la
declaración del método, cada argumento debe ser compatible con el tipo del parámetro
correspondiente.
30
Folleto elaborado por: MSc. Janine Mairena Solorzano
// CuadradosEnteros.java
// Crear y utilizar un metodo definido por el programador
import java.awt.Container;
import javax.swing.*;
} // end for
31
Folleto elaborado por: MSc. Janine Mairena Solorzano
// PruebaMaximo.java
// Encontrar el valor maximo de tres numeros de punto flotante
import java.awt.Container;
import javax.swing.*;
} // fin de maximo
} // fin de la clase
32
Folleto elaborado por: MSc. Janine Mairena Solorzano
//Asterisco.java
// Imprime un triangulo de asteriscos
import java.awt.Graphics;
import javax.swing.*;
33
Folleto elaborado por: MSc. Janine Mairena Solorzano
Unidad V: Arreglos
Introducción
Los arreglos son estructuras de datos que consisten de elementos de datos relacionados, del
mismo tipo. Son entidades de longitud fija, conservan siempre la misma longitud una vez
creados.
En Java los tipos de datos se dividen en dos categorías tipos primitivos y tipos de referencia.
Los arreglos en Java son objetos, por lo que se consideran como tipos de referencia. Para hacer
referencia a un elemento especifico en un arreglo, debemos especificar el nombre de la
referencia al arreglo y el numero de la posición del elemento especifico en el arreglo. El
numero de la posición del elemento se conoce formalmente como el índice o subíndice del
elemento. El primer elemento en cualquier arreglo tiene el índice cero. Un índice debe ser un
entero positivo o una expresión entera que pueda promoverse a un int. Ejm:
c[ 5 ] = 3; c[ a + b ] += 2;
Los objetos arreglo ocupan espacio en memoria. Todos los objetos en Java deben crearse con
la palabra clave new. El programador especifica el tipo de cada elemento y el numero de
elementos que se requieren para el arreglo, como parte de una expresión para crear un arreglo
que utiliza la palabra clave new. Ejm:
int c[];
c = new int [ 12 ];
Al crear un arreglo cada uno de sus elementos recibe un valor predeterminado: cero para los
elementos numéricos de tipos primitivos. false para los elementos bolean y null para las
referencias (cualquier tipo de primitivo).
34
Folleto elaborado por: MSc. Janine Mairena Solorzano
Para pasar un arreglo como argumento a un método, se especifica el nombre del arreglo sin
corchetes. Ejemplo:
llamada al método
modificarArreglo(temperatura);
aunque los arreglos completos se pasan por referencia, los elementos individuales de los
arreglos de tipos primitivos se pasan por valor, de la misma forma que se pasan las variables
simples. Para que un método reciba un arreglo mediante una llamada:
Ejemplos:
En el ciclo for se utiliza la expresión array.length para determinar la longitud del arreglo . en
este ejemplo la longitud del arreglo es 10, por lo que el ciclo continua ejecutandose siempre y
cuando el valor de la variable de control cont sea menor que 10.
// InicArreglo.java
// Creación de un arreglo
import javax.swing.*;
} // end main
} // end class InicArreglo
35
Folleto elaborado por: MSc. Janine Mairena Solorzano
// Arreglo2.java
// Inicializacion de un arreglo con una declaracion
import javax.swing.*;
System.exit( 0 );
} // end main
// Histograma.java
import javax.swing.*;
36
Folleto elaborado por: MSc. Janine Mairena Solorzano
System.exit( 0 );
} // end main
37
Folleto elaborado por: MSc. Janine Mairena Solorzano
Arreglos Multidimensionales
int b[];
b = new int [3][4];
al igual que los array unidimensionales , los bididimensionales pueden también ser
inicializados en la declaración:
int b[]= { { 1, 2 }, { 3, 4 } };
b[0][0]=1
b[0]1 ]=2
b[1][0]=3
b[1][1]=4
Las longitudes de las filas en un array no tienen que ser iguales. Ejm:
int b[]= { { 1, 2 }, { 3, 4, 5 } };
crea el array entero b con 2 elementos (los cuales se determinan según el numero de
inicializadotes de arrays anidados) que representan las filas del array bidimensional. Cada
elemento de b es una referencia a un array unidimensional de variables int. El array int de la
fila 0 es un array unidimensional de 2 elementos (1 y 2), y el array int de la fila 1 es un array
unidimensional con 3 elementos (3, 4 y 5).
Un array bidimensional en que cada fila tiene un numero distinto de columnas, puede crearse
de la siguiente manera:
int b[];
b = new int [2][ ]; // crea dos filas
b[0] = new int[ 5 ]; //crea 5 columnas para la fila 0
b[1] = new int[ 33]; //crea 5 columnas para la fila 1
38
Folleto elaborado por: MSc. Janine Mairena Solorzano
Ejercicios:
// ArrayBidi.java
// Inicializacion de arrays bidimensionales.
import java.awt.Container;
import javax.swing.*;
int array1[][] = { { 1, 2, 3 }, { 4, 5, 6 } };
int array2[][] = { { 1, 2 }, { 3 }, { 4, 5, 6 } };
areaSalida.append( "\n" );
}
39
Folleto elaborado por: MSc. Janine Mairena Solorzano
// ArrayBidi
// Procesamiento en arreglos bidimensionales
import javax.swing.*;
40
Folleto elaborado por: MSc. Janine Mairena Solorzano
System.exit(0);
}
}
Escribir una aplicación que lea el nombre y 4 notas de N estudiantes. Dentro de un metodo calcular el
promedio, el cual deberá ser de las 3 notas más altas y deberá de calcular el promedio general. En
otro metodo deberá de solicitarle al usuario cual de las 4 notas desea saber su nota mas baja y el
nombre del estudiante que la obtuvo. Imprimir en una tabla la información Ejemplo:
Promedio General: 78
//Notas.java
// Arreglo bidimensional de notas
import javax.swing.*;
for(f=0;f<n;f++)
{
nomb[f]=JOptionPane.showInputDialog("De el nombre del alumnos");
not=0;
for(c=0;c<4;c++)
{
not= c+1;
nota= JOptionPane.showInputDialog("De la nota:" + not);
notas[f][c]= Integer.parseInt(nota);
}
}
prog = Calculo(notas,baja,prom,n);
salida += "NOMBRE\t\t\tNOTAS\t\tBAJA\tPROMEDIO";
for(f=0;f<n;f++)
{
salida += "\n" + nomb[f] + "\t";
for(c=0;c<4;c++)
salida += notas[f][c] + "\t";
salida += baja[f] + "\t" + prom[f];
}
41
Folleto elaborado por: MSc. Janine Mairena Solorzano
42