Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programacin II
El lenguaje Java se origin con el propsito de conectar diferentes dispositivos electrnicos. Si bien el proyecto original fall, comenz a utilizarse a partir de 1995 y hoy en da es mundialmente empleado en pginas Web, multimedia y aplicaciones de escritorio.
aplicaciones de escritorio y cdigo que se ejecuta dentro de una pgina Web (applet).
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Java 2 Platform, Enterprice Edition (J2EE): permite desarrollar aplicaciones cliente-servidor, apropiadas para el mbito empresarial. Java 2 Platform, Micro Edition (J2ME): permiten en desarrollo de aplicaciones que se ejecutan en dispositivos con recursos restringidos, como celulares, agendas electrnicas, etc. El SDK es el kit de desarrollo que permite crear, compilar y ejecutar los programas Java.
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
public static void main(String [] args){ - se define el mtodo main(), el cual es pblico, esttico y de tipo void. Un mtodo es similar a una funcin en un lenguaje procedural. - entre parntesis est el argumento de la lnea de comando, que es un array de cadenas. System.out.println("Hola mundo"); - se muestra la frase Hola mundo por la salida estndar, o sea la pantalla. - si no se desea una nueva lnea despus de la salida, usar print, ya que la terminacin ln indica new line. Ms adelante se explicar detalladamente cada instruccin, pero para comenzar hay que seguir algunas normas elementales: 1. Cada bloque de cdigo va encerrado entre llaves. 2. Identar (tabular) los bloques para facilitar la lectura del cdigo. 3. El nombre del archivo fuente debe ser el mismo que el de la clase pblica. Debe llevar la extensin java. 4. Los identificadores de las clases comienzan con mayscula. 5. Los comentarios de una sola lnea comienzan con //. 6. Los comentarios que abarquen ms de una lnea comienzan con /* y finalizan con */ (al estilo del lenguaje C).
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Netbeans es un entorno de desarrollo de libre distribucin que puede bajarse del sitio www.netbeans.org o del sitio de Oracle http://www.oracle.com/es/index.html . . Una vez instalado el software, sigan los siguientes pasos: creen una carpeta con un nombre a eleccin, por ejemplo mistrabajos. ejecuten Netbeans y elijan el men File New Project.
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
seleccionen la categora Java y el tipo de proyecto Java application, luego presionen el botn Next. elijan como Project Location, la carpeta que crearon y como Project Name un nombre a eleccin, por ejemplo secuencial. desmarquen la casilla Create Main Class. marquen la casilla Set as Main Project. presionen Finish.
Se genera un proyecto con varias carpetas. Presionamos el botn derecho del Mouse sobre Source Packages y elegimos New Java Class. Le damos un nombre a la clase, por ejemplo HolaMundo y escribimos el cdigo del ejemplo anterior (1.3). Netbeans posee un conjunto de instrucciones abreviadas que se expanden al pulsar la tecla Tabulado. Por ejemplo psvm se convierte en public static void main(String[] args) o sout en System.out.println(""). Para ver otras opciones, ir al men Tools, Options, Editor, solapa Code Templates. Para ejecutar el programa, con el botn derecho del Mouse sobre la clase recin creada, elegir Run File.
Java al estilo C
Para que se adapten a este nuevo lenguaje, vamos a compararlo con el ya conocido TurboC.
Descripcin Entero de un Byte Entero corto Entero Entero largo Coma flotante de precisin simple
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Coma flotante de precisin doble Un slo caracter Unicode Un valor booleano o lgico
Para utilizar cadenas de caracteres se emplea la clase String que no es un tipo de dato primitivo sino una clase.
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
3.3 Operadores
Los operadores utilizados en Java son similares a los empleados en el lenguaje C. Se recordarn brevemente.
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Para mostrar una salida por pantalla, se utilizan los mtodos de la clase System, propia del lenguaje Java. System.out.println() Muestra una cadena por pantalla y luego agrega un carcter de nueva lnea. System.out.print() Muestra una cadena por pantalla, sin agregar una nueva lnea. Admiten como argumento distintos tipos de datos, como int, char, String, float, double, boolean. Los datos pueden concatenarse utilizando el signo +. System.out.printf() La sintaxis es similar a la utilizada en el lenguaje C.
A diferencia de la salida, la entrada por consola es ms complicada. A partir de la versin 5 de Java, el ingreso se facilita utilizando la clase Scanner. Se debe crear un objeto o instancia de esta clase, y utilizar sus mtodos para leer distintos tipos de datos. Ejemplo import java.util.Scanner; public class EntradaSalida { public static void main(String[] args) { String nombre=""; int edad=0;
Ana Mara Clos 8
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Scanner entrada=new Scanner(System.in); System.out.println("Nombre: "); nombre=entrada.next(); System.out.println("Edad: "); edad=entrada.nextInt(); System.out.println("Ud es " + nombre + " y tiene " + edad + " aos"); } } import java.util.Scanner; Es similar al #include de C. Permite utilizar la clase Scanner. Scanner entrada=new Scanner(System.in); Se crea una instancia u objeto de la clase Scanner. El argumento entre parntesis es la entrada estndar, o sea el teclado. nombre=entrada.next(); El mtodo next() lee un String desde el teclado. edad=entrada.nextInt(); El mtodo nextInt() lee un entero desde el teclado. Ejemplo import java.util.*; public class Longitud { public static void main(String[] args) { final float PI=3.14F; float radio=0; Locale.setDefault(Locale.US); Scanner entrada=new Scanner(System.in); System.out.println(entrada); System.out.println("Ingrese el radio: "); radio=entrada.nextFloat(); System.out.printf("Longitud: %.2f\n" ,2*PI* radio); } } import java.util.*; Permite utilizar todas las clases del paquete java.util. final float PI=3.14F; Declara la constante PI, de tipo flotante.
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Locale.setDefault(Locale.US); Establece la configuracin local por defecto como US, para separar los decimales con punto y no con coma. radio=entrada.nextFloat(); Permite ingresar un nmero flotante desde el teclado. System.out.printf("Longitud: %.2f\n" ,2*PI* radio); Se muestra la longitud con dos decimales.
Instrucciones de control
10
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
break; case caso2: sentencia 2; break: default: sentencia n; } Ejemplo import java.util.Scanner; public class AlternativaMultiple { public static void main(String[] args) { char ec=' '; String estadoCivil=""; Scanner entrada=new Scanner(System.in); System.out.println("Estado civil (s/c/v/d): "); ec=entrada.next().toLowerCase().charAt(0); switch(ec){ case 's': estadoCivil="soltero"; break; case 'c': estadoCivil="casado"; break; case 'v': estadoCivil="viudo"; break; case 'd': estadoCivil="divorciado"; break; default: estadoCivil="desconocido"; } System.out.println("Su estado civil "+estadoCivil); } }
es
ec=entrada.next().toLowerCase().charAt(0); Lee un String del teclado, lo convierte a mayscula y asigna el primer carcter a la variable ec.
11
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
} Se ejecutan las sentencias mientras la condicin sea verdadera. Si la condicin es falsa, las sentencias no se ejecutan nunca. do{ sentencias: } while(condicion); Se ejecutan las sentencias mientras la condicin sea verdadera. Si la condicin es falsa, las sentencias se ejecutan una sola vez. for(inicio;condicion;incremento){ sentencias; } Las sentencias se ejecutan mientras la condicin sea verdadera. Las variables involucradas en la condicin pueden inicializarse e incrementarse dentro de los parntesis. Ejemplo import java.util.Locale; import java.util.Scanner; public class Repeticion { public static void main(String[] args) { float num=0,sum=0; final int MAX=5; Locale.setDefault(Locale.US); Scanner entrada=new Scanner(System.in); for(int i=0;i<MAX;i++){ System.out.println("Ingrese un N: "); num=entrada.nextFloat(); sum+=num; } System.out.println("Promedio: "+sum/MAX); } } La variable i se puede declarar dentro de la repeticin, pero solamente se conoce dentro de las llaves del for.
12
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Actividades
1. Un tirador efecta 5 disparos sobre un blanco. Segn la distancia al centro, recibe el puntaje que se indica: DISTANCIA PUNTAJE 0 <=D <=1 10 1 < D <=5 5 5 < D <=10 1 D > 10 0 Determinar el puntaje final del jugador. 2. Ingresar el estado civil de varias personas y contar cuntas son de cada clase. El ingreso finaliza con una respuesta negativa del usuario. 3. Ingresar varios nmeros decimales, finalizar con un valor cero. Informar el porcentaje de nmeros negativos. 4. Ingresar N que es una cantidad de nmeros enteros. Luego ingresar esa cantidad de nmeros. Encontrar el menor y contar las veces que se repite. 5. Ingresar un nmero entero positivo y validarlo. Informar todos sus divisores.
La clase String
Es una clase muy particular, ya que no necesita ser instanciada para poder usarse. Se puede iniciar un String usando la palabra new(), pero tambin se le puede asignar un contenido directamente. Las dos instrucciones siguientes son vlidas: String nombre1=Juan; String nombre2=new String(Juan); Las cadenas (String) pueden asignarse con el signo igual, pero para compararse necesitan mtodos especiales. nombre1=nombre2; asigna a nombre1 el contenido de nombre2. nombre1.equals(nombre2) compara ambas cadenas, retorna true o false segn sean iguales o no.
13
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
nombre1.compareTo(nombre2) retorna un valor negativo si el primer String est alfabticamente antes que el segundo, un valor positivo si el segundo String est alfabticamente despus del segundo, o cero si ambos son iguales.
8.2 Actividad
En main()n ingres dos palabras diferentes utilizando la clase String. Mostr las palabras en orden alfabtico.
Arrays
Los arreglos, al igual que los utilizados en el lenguaje C permiten almacenar un conjunto de datos similares bajo un mismo nombre.
14
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
Para declarar un array unidimensional se escribe el tipo de dato seguido de un par de corchetes vacos y luego el nombre. Tambin puede invertirse el orden entre el nombre y los corchetes. int [ ] num1; float [ ] num2; La declaracin de un array no asigna memoria para los datos, solamente es una referencia a un lugar de memoria desconocido.
9.1.2.
Instanciacin
Como vimos anteriormente, un array declarado no referencia a ningn objeto. Antes de utilizarlo hay que crear un objeto o instancia que permita almacenar todos sus valores. num1=new int [5]; num2=new float[10]; Al instanciar un array, sus elementos se inicializan con valores por defecto, los cuales pueden ser 0, null o el caracter nulo de Unicode (\u000).
9.1.3.
Inicializacin
Si se conocen los valores iniciales del array, los procesos de declaracin e inicializacin se realizan en una misma lnea, sin necesidad de instanciar el array. int [] num1={1,2,3,4,5}; float [] num2={1.3,2.4,3.8};
15
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
9.1.4.
Para acceder a cada elemento del array se utilizan los corchetes. Dentro de estos se escribe el ndice deseado. Al igual que en el lenguaje C, el ndice de un array comienza en cero. num1[0]=10; num2[3]=5.2F;
9.1.5.
Longitud de un array
Todos los arrays en Java tienen una variable miembro que permite conocer su cantidad de elementos. La variable es length y se accede a ella con el operador punto. Los arrays en Java comienzan con el ndice cero y terminan con el ndice length 1. int [] num=new int[10]; System.out.println(La +num.length);
cantidad
de
elementos
es
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
System.out.print(num[i][j]+"\t"); System.out.println(); } Cuando utilizamos num.length se indica la longitud de todo el array, o sea la cantidad de filas. Cuando se usa num[i].length se est expresando la longitud de cada fila. Ejemplo import java.util.Scanner; public class Arrays { public static void main(String[] args) { final int MAX=5; float [] num1={1.0F,2.0F,3.0F,4.0F}; int [] num2=new int[MAX]; Scanner entrada=new Scanner(System.in); for(int i=0;i<MAX;i++){ System.out.println("Ingrese un numero: "); num2[i]=entrada.nextInt(); } System.out.println("Primer array"); for(int i=0;i<num1.length;i++){ System.out.println(num1[i]); } System.out.println("Segundo array"); for(int i=0;i<num2.length;i++){ System.out.println(num2[i]); } } }
10
Variables estticas
En algunos casos no se necesita instanciar una clase para acceder a sus variables y mtodos. En la clase Math se encuentra la constante PI y como su valor no depende de una instancia, para obtenerlo se escribe el nombre de la clase, un punto y el nombre PI. El siguiente ejemplo muestra como hacerlo: public class Pi{ public static void main(String []args){ System.out.println("Pi vale "+ Math.PI); } }
17
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
10.2 Actividad
Escrib la clase Raiz. En main() ingres un nmero decimal y mostr su raz cuadrada.
18
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
} public static float promedio(float n1,float n2){ return (n1+n2)/2; } public static boolean isAprobado(float nota){ if(nota>=4) return true; else return false; } public static void main(String [] args){ Locale.setDefault(Locale.US); float nota1,nota2,promedio; System.out.print("Ingrese la primer nota "); nota1=cargarNota(); System.out.print("Ingrese la segunda nota "); nota2=cargarNota(); promedio=promedio(nota1,nota2); System.out.println("El promedio es: "+promedio); if(isAprobado(promedio)) System.out.println("El alumno est aprobado"); else System.out.println("El alumno est desaprobado"); } } import java.util.Locale; import java.util.Scanner; public class MetodosEstaticos { static final int MAX=5; public static void main(String[] args) { Locale.setDefault(Locale.US); double [] num=new double[MAX]; cargar(num); int im=menor(num); System.out.println("El menor es "+num[im]); } public static void cargar(double [] n) { Scanner entrada=new Scanner(System.in); for(int i=0;i<MAX;i++){ System.out.println("Ingrese un N: "); n[i]=entrada.nextDouble(); } } public static int menor(double [] n) { int im=0; for(int i=1;i<n.length;i++){ if(n[i]<n[im]){ im=i; }
Ana Mara Clos 19
Instituto Superior de Formacin Tcnica 179 Unidad I Parte I Nociones bsicas del lenguaje de programacin Java
Programacin II
} return im; } }
11
Actividades
1. En main() declar un array de enteros de dos dimensiones, con 10 filas y tres columnas e instancialo. Utiliz un mtodo cargar() para llenar el array con valores: asign los nmeros del 1 al 10 en la primer columna; en la segunda columna calcul los cuadrados de los nmeros de la primer columna; en la tercer columna los cubos de los nmeros de la primer columna. Con un mtodo mostrar() visualiz el array fila por fila. 2. Escrib el mtodo cargar para ingresar el nombre y la nota de varios alumnos. Finaliz el ingreso con la palabra fin. Escrib el mtodo mayor() que retorne la mejor nota. Escrib el mtodo mostrar() que muestre los nombres de todos los alumnos que obtuvieron la mejor nota. 3. Ingres el nombre y el precio (con decimales) de 5 artculos en el mtodo cargar(). En el mtodo ordenar(), ordenalos alfabticamente y luego mostralos con otro mtodo. Ingres el nombre de un artculo en main(). En el mtodo buscar() inform el precio de ese artculo o indic si no se encontr.
20