Você está na página 1de 14

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

GUIA PRCTICA ESTRUCTURA: MODULO: No. GUIA: PROGRAMACION ORIENTADA A OBJETOS Programacin en JAVA TRES (3)

Fecha: 11/11/2011 Pgina 1

OBJETIVOS Concepto de vectores. Concepto de captura. Distinguir mediante ejercicios prcticos los vectores y como realizar capturas. Concepto de sobrecarga. Realizacin de ejemplos de pasos de argumentos a la aplicacin. La presente gua nos permitir analizar, modificar, comprender y desarrollar nuestros propios ejercicios, recuerde que para comprender mejor cada uno de los temas vistos en nuestro curso es necesario que usted tambin tenga la tarea de investigar. VECTORES
class Texto { String[] primnom ={"Raul","Maria","Daniel","Camilo","Dina","Andrea"}; String[] apellido = new String [primnom.length]; void imprimir () { for (int i=0; i< primnom.length; i++) { System.out.println(primnom [i]+ " " + apellido[i]); } } public static void main(String var[]) { Texto aux = new Texto (); aux.imprimir(); aux.apellido[0]="Ortiz"; aux.apellido[1]="Giacometto"; aux.apellido[2]="Sierra"; aux.apellido[3]="Prieto"; aux.apellido[4]="Otavo"; aux.apellido[5]="Martin"; aux.imprimir();

Elaborado por: Ing Ral Ernesto Ortiz Garzn 1

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS


} }

Fecha: 11/11/2011 Pgina 2

Como podemos ver, los vectores en java son prcticamente idnticos a los de C++, pues se enuncian y representan de la misma manera, adems de que ahora podemos ingresar cadenas o strings dentro de los arrays como lo vimos en el ejemplo anterior. Aqu se presenta el IDE Jcreator para que desde ya te vayas acostumbrando a usarlo

Elaborado por: Ing Ral Ernesto Ortiz Garzn 2

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 3

Ser que Daniel es una clase?: No, Daniel tan solo es una variable de tipo cadena (string) que est dentro del arreglo o vector primnom.

Elaborado por: Ing Ral Ernesto Ortiz Garzn 3

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 4

EJERCICIOS PROPUESTOS

1. Escribir un programa en java en que el vector cuyos elementos son: { 7, 4, 8, 1, 4,


1, 4 }. debe imprimir el mismo vector en arreglo1 y en arreglo2 imprimir los mismos elementos de arreglo1 hasta que encuentre un elemento 1, cuando encuentre el elemento 1 no debe imprimir ms; el vector arreglo2 debe ser flotante.

Elaborado por: Ing Ral Ernesto Ortiz Garzn 4

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 5

2. la clase CargaVector recibe en el mtodo marcarRango un valor inicial y un valor final para que cargue consecutivamente en intervalos de uno en uno un vector arr desde el valor inicial hasta el valor final; este mtodo debe devolver el nuevo vector a donde fue llamado. Desde el mtodo main se debe llamar al mtodo marcarRango. en este mismo mtodo main imprimir el vector cargado marcarRango.

3. Escribir un programa en JAVA implementando una funcin en la que del main entren los valores 1, 2, 54, 77, 1346. Esta funcin debe imprimir el valor que entra e indicar cul es par y cual es impar.

4. Escribir un programa en Java en que el vector cuyos elementos son: 7, 4, 8, 1, 4,


1, 4. Debe imprimir el mismo vector en arreglo1 y en arreglo 2 los elementos 1 deben cambiar por cero e imprimir todo el vector en flotante.

Elaborado por: Ing Ral Ernesto Ortiz Garzn 5

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 6

5. Imprimir un vector cargado de elementos de tipo entero. Imprimir indicando cuales y cuantos y en qu posicin los valores se repiten.

INTRODUCCIN A LOS FLUJOS O STREAMS. COMPLETE Los flujos surgen por la necesidad de las aplicaciones Java de interactuar con el exterior de dos posibles formas:

Generando salida a la consola del ___________, a un fichero, etc. Capturando datos procedentes del teclado, de ficheros, de pginas web, etc.

Concepto de flujo: es como un ro. El agua en movimiento es el flujo, su contenido son los datos. Lo que permite que esos datos viajen de un origen a un destino es el agua en movimiento, es decir, el flujo. En el caso de la captura, desde un programa Java, de datos introducidos por un usuario mediante teclado, el origen es el _________ , el destino, el programa Java y los datos, lo tecleado por el usuario. Java modela flujos mediante clases del paquete java.io.

CAPTURA DE DATOS DESDE TECLADO Se necesita lo siguiente:

Elaborado por: Ing Ral Ernesto Ortiz Garzn 6

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 7

Obtener un objeto que modele la fuente de entrada de datos teclado en un programa Java. Para ello, lo primero que debe tenerse presente es que el ________ es la entrada estndar de datos en un PC. A continuacin, debe tenerse en cuenta, que cualquier entrada genrica de datos a un programa Java, se modela mediante un objeto de la clase abstracta java.io.InputStream. Bueno, pues en la API se observa que un objeto de esta clase es lo que devuelve la variable de campo esttica "in" de la clase java.lang.System. Adems, la explicacin API de esta variable nos dice que representa la entrada estndar de datos de un programa Java. Pues ya est.

CONCLUSIN: en los cdigos que capturen datos procedentes del teclado, se emplear __________ para modelar el teclado.

Para la salida es lo mismo: la salida estndar de datos en un PC es la consola del __________. La salida genrica de datos de un programa Java se modela mediante un objeto de la clase abstracta __________________ . En la API, se observa que un objeto __________ (hereda de ____________ y, por tanto, es un objeto ____________) es lo que devuelve la variable de campo esttica "______ " de _________ . Adems, la explicacin API de esta variable dice que representa la salida estndar de datos de un programa Java. CONCLUSIN: en los cdigos que generen salida a travs de la consola del DOS, se emplear ____________ para modelar la consola del DOS. Cmo se escribe en la consola? A travs de mtodos adecuados de PrintStream. Concretamente se han empleado print(..) y println(..) durante el tiempo que se lleva de curso

No es esta la nica forma de interactuar con el exterior que tiene un cdigo Java. Ms adelante se ver cmo se puede generar salida creando un fichero, por ejemplo.

Elaborado por: Ing Ral Ernesto Ortiz Garzn 7

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 8

Crear un flujo que permita al programador leer datos del teclado. Este flujo va a ser de entrada o lectura de datos y va a modelarse con una objeto de la clase

InputStreamReader.

Crear un filtro encargado de leer los datos de forma ptima mediante la aplicacin de un mtodo de lectura adecuado. El filtro se modela con un objeto de la clase java.io.BufferedReader y el mtodo de lectura adecuado va a ser String readLine() que, ya se ver, lanza una excepcin del tipo IOException que debe ser gestionada correctamente. En un principio, se gestionar mediante la clusula throws IOException a continuacin del mtodo main.

CONCLUSIN GENERAL: permite leer datos que van de la consola a la memoria .

El System.in u objeto InputStream es el objeto de la clase de InputStreamReader y modela el origen de los datos que se leen, es decir, el teclado. El filtro u objeto _______________ permite, mediante la utilizacin del mtodo String readLine(), leer de forma ptima del flujo.

Vdeo explicativo del proceso de lectura de datos desde teclado. Ejemplo: muestra cmo se programa un cdigo Java que tiene que capturar datos introducidos por el usuario desde teclado. Al ejecutarlo, se mostrar por consola un mensaje indicando al usuario que introduzca un nmero. El usuario lo teclear y pulsar enter. Despus, se mostrar otro mensaje invitndole a que teclee otro nmero. El usuario lo teclear y pulsar de nuevo enter(es el metodo readline). Finalmente, el cdigo calcular la suma de los dos nmeros introducidos. Todos los cdigos en c:\cursojava\tema3 si no se emplea IDE o en jcreator_home\MyProjects\tema3 si se emplea. Ejemplo:

Elaborado por: Ing Ral Ernesto Ortiz Garzn 8

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 9

Cdigo fuente

Explica el programa: Primero empezamos importando la API java.io pues ser necesaria para los procesos que deseamos realizar dentro del programa. Luego declaramos nuestra clase con el nombre SumaDatosTeclado adems de colocar el mtodo main de esta clase igual que siempre lo declaramos public static void main(String[] args) pero en este casos usamos el mtodo throws para lanzar una

Elaborado por: Ing Ral Ernesto Ortiz Garzn 9

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 10

excepcin, en este caso la IOException (ver gua de excepciones). Si llegase a haber una excepcin en el proceso normal del programa podramos manejarla y arreglar dicho error. Como dice hay, creamos el flujo y el filtro para lectura de datos respectivamente. Despus se inicializa la variable de tipo String porque java al leer datos por teclado, siempre los vera como cadenas. Posterior a eso se inserta el flujo br, el apuntador y el mtodo readLine() que permitir el ingreso de datos. Despus se debe convertir el valor de cadena en un valor entero (int) en este caso a travs de las sentencias Integer.parseInt() y dentro de los parntesis del mtodo parseInt se escribe la variable que ser convertida. Al final procedemos a imprimir el resultado concatenando las cadenas con las variables ahora enteros y en el mismo mtodo de impresin realizamos la suma. Por consola: Teclea el primer numero: 10 Teclea el segundo numero: 23 Suma de 10 y 23 es 33 NOTA: la creacin del filtro podra hacerse en una sola lnea de este modo: BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); A continuacin observara dos ejemplos de captura transcrbalos y ejectelos, recuerde que pueden tener algn error si es as modifquelos y completelos segn lo aprendido.

import java.lang.*; import java.io.* ;/*API de java que hace referencia a la IOSTREAM de C++ que permite el flujo de datos, de hay su nombre Input Output*/ public class Captura { public static void main(String[] var)throws IOException {

Elaborado por: Ing Ral Ernesto Ortiz Garzn 10

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 11

int num1,num2,result; String cap; DataInputStream dato = new DataInputStream(System.in); num1=0; /*(El objeto dato de la clase DataInputStream ya fue instanciado y no se necesita repetirlo de nuevo*/ num2=0; result=0; cap=" "; System.out.println("digite 1er numero"); cap = dato.readLine(); num1= Integer.parseInt(cap); System.out.println("digite 2do numero"); cap = dato.readLine(); num2= Integer.parseInt(cap); System.out.println("el resultado es:"); result=(num1+num2); System.out.println(result); } }

una vez

ejemplo2 import java.io.*; public class Captura3 { public static void main (String[] var)throws IOException

Elaborado por: Ing Ral Ernesto Ortiz Garzn 11

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 12

{ int num1, num2, result; String Cap; DataInputStream dato = new DataInputStream (System.in); /*instanciacin del objeto para el flujo de datos de la clase DataInputStream*/ num1 = 0; //DataInputStream dato = new DataInputStream (System.in); num2 = 0; result = 0; Cap = " "; System.out.println("digite el primer nmero"); Cap=dato.readLine(); num1= Integer.parseInt(Cap);//convertidor de datos de cadena a entero System.out.println("digite el segundo numero"); Cap=dato.readLine(); num2= Integer.parseInt(Cap); System.out.println("el resultado es"); result=(num1+num2); System.out.println(result); } }

Otros mtodos para el ingreso de datos por teclado en java

Elaborado por: Ing Ral Ernesto Ortiz Garzn 12

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 13

El lenguaje de POO Java contiene muchsimos mtodos para el ingreso de datos por teclado, unos ms sencillos que otros, aunque la metodologa que se sigue es la misma para todos los casos: Uno de ellos es a travs de uno que permite el ingreso de los datos por consola:
class Ejemplo2 { public static void main(String[] args) { int num; System.out.println("Usuario, digite un numero: "); String cap=System.console().readLine(); num=Integer.parseInt(cap); System.out.print("El numero digitado es: "+num); } }

Esta sentencia System.console().readLine() permite el ingreso de datos a travs de la consola del BIOS y no necesita de la importacin de alguna API en especial, pero este no funciona en algunos IDE como en nuestro caso el JCreator que no reconoce el mtodo console() .

Otro tambin muy conocido es el siguiente. Este hace uso de la API de java til.Scanner, y funciona de una forma muy parecida al mtodo principal que vimos previamente, pues

Elaborado por: Ing Ral Ernesto Ortiz Garzn 13

SERVICIO NACIONAL DE APRENDIZAJE, SENA PROGRAMACIN ORIENTADA A OBJETOS

Fecha: 11/11/2011 Pgina 14

tambin se crea una especia de filtro para el flujo de datos. Adems como se observa no se usa la tpica conversin del Integer.parseInt que es reemplazada con el mtodo nextInt lo que ahorra ms lneas del cdigo.
import java.util.Scanner; public class TestScanner { public static void main(String[] args) { int entero; Scanner scanner = new Scanner(System.in); System.out.println(" valor Entero :"); entero = scanner.nextInt(); System.out.println(entero); } }

Elaborado por: Ing Ral Ernesto Ortiz Garzn 14

Você também pode gostar