Programación orientada a objetos

 

Taller 3

JCreator, entrada/salida por consola y manipulación de Strings

 

En este taller conoceremos un IDE (Integrated Development Environment) de los mas simples: JCreator. Además, veremos como es la entrada y salida en Java de la manera más sencilla.

Muchos desarrolladores simplemente desarrollan sus aplicaciones simplemente con las herramientas que provee el SDK. Aunque sirve para programas relativamente simples, para programas complejos ya se nos complicará un poco la vida. Para estos programas, un IDE es ideal. Los IDE´s facilitan el proceso de desarrollo integrando en un simple ambiente el manejo de proyectos con editores para creación rápida de código junto con algunas otras tareas, como compilación, ejecución y depuración.

¿Qué es JCreator?

JCreator es un IDE de Xinox Software que le permite manejar archivos de proyectos de Java.  Tiene herramientas sofisticadas para editar código, compilar y correr código ejecutable. JCreator Limited Edition es Freeware.

1. JCreator

1.1 Creación de un workspace con JCreator

Despues de instalar JCreator, hagamos clic en el icono de este que se encuentra en el escritorio. Entre todo lo que se ve, se encuentra una ventana que muestra el espacio de trabajo: un directorio cuyos subdirectorios identifican un proyecto y cero o más subproyectos (esto es, paquetes). El directorio de trabajo contiene un archivo .jcw que guarda la información del proyecto en el que trabajamos.

1. Creemos un proyecto. Hagamos clic en File y new. Obtendremos una caja de dialogo con tres paneles: Files, Projects y Workspaces. Seleccionemos Projects. Nos da tres opciones: Basic Java application, Basic Java Applet y Empty project. Cada una de estas opciones crea las clases o métodos necesarios para soportar cada tipo de proyecto. Por ejemplo, si hacemos clic en Basic Java Application creará una clase que tenga el metodo main. Seleccionemos Empty Project y demosle un nombre. Luego, esta la opción de darle la ubicación donde queremos que se encuentren nuestros archivos del proyecto. Seleccionemos un directorio y demos clic en ok.

Cuando carguemos nuestro proyecto con archivos de código fuente y luego lo carguemos en el editor de JCreator, veremos una ventana del editor a la derecha de la ventana de archivos. JCreator le permite cargar múltiples archivos en el editor, aunque solo permite visualizar uno de ellos.

2. Creemos un archivo de Java nuevo. Demos clic en el menu Archivo y luego en nuevo. Seleccionemos Java File y demosle un nombre. Fijense que la opción de adicionar al proyecto este activa y que el proyecto que este seleccionado sea el que creamos antes de aceptar. Luego demos clic en OK.

3. Ingresemos la definición de la clase correspondientes y algunos métodos de prueba. Incluyamos un metodo main.

Existe una ventana con la información de clases y paquetes del actual archivo .java en el proyecto actual. Esta ventana por lo general se ubica bajo la ventana de navegación de archivos. Si no la ven, seleccionen el menu View, luego toolbars y por último ClassView.

1.2 Algunas características de JCreator

El editor tiene las características básicas usuales: insertar, borrar y actualizar texto, soporte para copy, cut y paste, undo ilimitado entre otras. Además, tiene las siguientes características:

Class wizard: El editor de JCreator le permite agilizar el proceso de crear clases, ingresar métodos y atributos con este wizard. Para acceder a el hay que hacer clic en el menu Project y luego en new class...

Numeros de línea: Por defecto JCreator enseña líneas con numero mientras se ingresa el código. Esto le permite referenciar más facil el código fuente referenciandolo con estos números de línea.

Resaltado de sintaxis: JCreator resalta varios elementos de código fuente, como nombres de métodos y palabras claves como new y class.

1.3 Compilación y ejecución

1. Despues de guardar el código, compile el proyecto que creo seleccionando el menu Build y luego Compile Project. ( o presione f7 ).

Si algo salio mal, revise el código y vuelva a compilar el proyecto. Si salio bien, estamos listos para ejecutar el proyecto.

2. Seleccione el menu Build y luego Execute Project.( o presione f5 ). En respuesta, JCreator ejecuta la aplicación.


2. Entrada y salida de consola

Java asocia "streams" de bytes a componentes del sistema. De hecho, Java crea 3 objetos "streams" que estan asociados a diversos dispositivos cuando un programa en Java inicia la ejecución: System.in, System.out y System.err. Los "streams" asociados a estos objetos establecen canales de comunicación entre un programa y un dispositivo partícular.

2.1 Salida

Como ya se ha visto, la impresión a consola se realiza usando los comandos:
   
System.out.println( argumento);  o  System.out.print(argumento);

En general, argumento es de tipo String, pero puede ser corresponder a cualquier tipo primitivo. La diferencia entre println ay print es que el primero adiciona un cambio de línea al final.

2.2 Entrada

No existe un comando simple para realizar entrada por consola. Es necesario crear una instancia de la clase BufferReader que nos permita leer desde el teclado. El siguiente programa ilustra el proceso:

import java.io.*;

public class TestLectura {

 public static void main(String[] args) throws IOException {
  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  String s = reader.readLine();
  System.out.println("este es el mensaje: <"+s+">");
 }
}


Es importante tener en cuenta los siguientes puntos:

3. Algunas funciones para el manejo de cadenas

length: este método devuelve la longitud de una cadena. Por ejemplo:
    
    String s = "hola mundo!";
    int longitud = s.length();

En este caso, longitud valdrá 11.

charAt: recibe un entero como argumento que es usado como número de la posición y retorna el caracter en esa posición.  Tengamos siempre presente que el primer carácter de la cadena corresponde con la posición 0. Por ejemplo:

    char c = s.charAt( 3 );

Entonces c almacenará del caracter 'a'.

substring: retorna un nuevo String que es una subcadena de la cadena inicial. Recibe como argumento el índice inicial y el índice final mas 1.

    String s = "hola mundo!";
    String s1 = s.substring(2,7);

Entonces s1 almacenará la cadena "la mu".

getChars: copia los caractéres de un String en un arreglo de caracteres. El primer argumento es un entero con el indice del caracter inicial desde donde los caractéres se copian. El segundo argumento es el índice del caracter que queda despues del ultimo que copiamos. El tercer argumento es el arreglo de caractéres en el cual los caractéres se van a copiar. El último argumento es el indice del comienzo de donde se copian los caracteres en el arreglo de salida. Vemolo mas claramente con el ejemplo:

    char charArray[];
    s.getChars( 0,4, charArray, 0 );

Entoces le decimos que de la cadena s copie los caracterés desde la posición 0 hasta una posición antes del 4 (es decir, posición 3 ), que los copie en el arreglo charArray y que comienze en el charArray en la posición 0.

3.1 Paso de un String a un entero

Como hemos visto, muchos datos de entrada y salida se manejan con Strings. ¿ cómo hacemos para realizar procesamiento de estos datos si los necesitamos en otro formato ?. Ahora, en partícular, ¿si necesitamos convertir un String a un int como hacemos?. Para eso utilizamos clases  que nos facilitan el manejo de datos intrínsecos como int y double por ejemplo.

La clase que utilizamos para el manejo de enteros es Integer. El método estático parseInt de esta clase recibe como parámetro un String que representa un entero y devuelve este mísmo dato en formato de entero. Por ejemplo:

    int numero = Integer.parseInt( "45" );

Entonces la variable número tendrá el valor de 45.

4. Ejercicio

 
Con lo visto anteriormente, cree un programa que:
Sugerencia: adicione un constructor a la clase Complejo que reciba un String como argumento.