Logo Revista Java

startjavaabout

articles

00. Prólogo (java)
01.a TEMAS INTRODUCTORIOS. (java)
01.b Comandos que Inician la Máquina de Java y la salida de texto (java)
01.c Descripción empírica de la Programación Orientada a Objetos con Java. (java)
01.d Herencia Soportada por Java y Tipos de Datos Básicos. (java)
01.e Operadores, Delimitadores Básicos Y los nombres de función Válidos. (java)
02.a Codificación Inicial y Estructuras de Datos. (java)
02.b Paquetes, y Palabras clave, (Reservadas) (java)
02.c Tipos de Datos, y declaraciones de funciones, Tablas. (java)
02.d Bucles y Tomas de decisión, Excepciones y Control de Errores. (java)
02.e Secuencias de Escape (java)
02.f Concatenación y Conversiones a Texto. (java)
02.g Métodos de Entrada y Salida de datos (java)
02.h Crear Objetos de la biblioteca de Java (java)
02.i Ejercicio: Entrada de Datos y Conversiones (if, try, catch) (java)
02.j Ejercicios, usando excepciones y while, y switch (java)
02.k Práctica complementaria Resuelta sin Arreglos. (java)
02.l Ejercicios de la práctica complementaria (java)
02.m Práctica complementaria resuelta Ej 6 y 7 (java)
02.m Práctica complementaria resuelta Ej 8 y 9 (java)
03.a Métodos estáticos y mecanismos de programación (java)
03.b Arreglos (Arrays o Vectores) (java)
03.c La clase Math como ayudante para resolver problemas (java)
03.d Usando arreglos para un buffer, colas de espera, pilas y listas. (java)
03.e Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir) (java)
03.f Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir) 2da parte (java)
03.g Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir) (java)
03.h Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir) 2da parte (java)
03.i Implementación de una Lista de datos. (java)
03.j Búsqueda Secuencial dentro de la lista de datos. (java)
03.k Búsqueda Aleatoria dentro de la lista de datos. (java)
03.l Búsqueda binaria dentro de una lista ordenada de datos. (java)
03.m Método para Ordenar - La Burbuja (java)
03.n Método para Ordenar - QuickSort Recursivo (java)
03.o Ejercicios Resueltos, ordenar con Java (java)
04.a Nuestro primer Objeto en Java (java)
04.b Codificación del primer Objeto en Java (java)
Vemos la importancia, y uso de métodos estáticos, y estrategias de resolución de problemas, utilizando métodos estáticos por el momento.

03.a Métodos estáticos y mecanismos de programación

(283)
Vemos la importancia, y uso de métodos estáticos, y estrategias de resolución de problemas, utilizando métodos estáticos por el momento.
contact
Created,Modified
2009-04-02 11:44:55, 2009-05-07 19:08:34
Author,Nick
Gustavo Guillermo Perez, (madgus) [myblog]

III – Métodos estáticos y Mecanismos de Programación.

Este capítulo pretende proporcionar al usuario final las herramientas para solucionar problemas del tipo programación estructurada, de pilas, colas, vectores, árboles, etc. Que es necesario para formar correctamente al alumno en cualquier ambiente de programación, incluida la programación orientada a objetos, no pretendemos ir a la P.O.O todavía sino hasta más adelante, de esta manera este capítulo puede utilizarse para afianzar los conocimientos necesarios para un curso de física o matemáticas donde se desee aplicar a problemas en general.

La P.O.O. en este capítulo será completamente básica, y ni siquiera la mencionaremos en muchos caso hasta el final del capítulo a menos que sea necesario.


Métodos estáticos (funciones o procedimientos)

En el capitulo anterior no utilizamos nada de la programación estructurada, sólo seguimos un orden de ejecución secuencial, es decir paso a paso y no planteamos el problema de la reutilización de código.

Problema: necesitamos ingresar datos por teclado, hacer varios cálculos y volver a ingresar datos por teclado y hacer otros cálculos diferentes, y este mismo proceso, repetidas veces, como vimos en los ejemplos anteriores tendríamos que repetir el bloque try{}catch(){} varias veces, y si quisiéramos repetir un bloque de cálculos para ciertos datos... ¿Que pasaría si quiero cambiar esas órdenes las veces que se hayan repetido?.

Entonces comenzamos con las funciones, o métodos estáticos en Java, se les denomina estáticos porque pertenecen a la Clase o tipo de datos y no es necesario crear un objeto para invocarlos o llamarlos, para nosotros en este momento nos servirán para solucionar el problema de repetición y mantenimiento de código.

Ejemplo 3.1:

Se requiere ingresar los datos de 3 valores y calcular su promedio, paso seguido, preguntar el nombre del usuario e imprimir de manera personalizada “Usuario, el promedio de tus tres valores es: XXX”, es un problema muy similar a los anteriores, pero utilizaremos una función llamada leer que fabricaremos para no repetir el código de lectura del teclado.

  1. package com.compunauta.aprendiendojava;

  2. import java.io.*;

  3. /**

  4. * <p>Título: Aprendiendo Java</p>

  5. * <p>Descripción: Ejemplos del Libro Aprendiendo Java de Compunauta</p>

  6. * <p>Copyright: Copyright (c) 2006 www.compunauta.com</p>

  7. * <p>Empresa: COMPUNAUTA</p>

  8. * @author Gustavo Guillermo Pérez

  9. * @version 2006.01.01

  10. */

  11. public class MetodoLeer {

  12. public static void main(String[] args) {

  13. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

  14. int acumulador=0;

  15. for(int i=0;i<3;i++){

  16. System.out.println("Ingrese el valor "+(i+1)+" de 3?");

  17. acumulador=acumulador+=Integer.parseInt(leer(br));

  18. }

  19. acumulador/=3;

  20. System.out.println("Ingrese su nombre?");

  21. String nombre=leer(br);

  22. System.out.println("Usuario: "+nombre+" tu promedio es:"+acumulador);

  23. }

  24.  

  25. public static String leer(BufferedReader buff){

  26. String lee="";

  27. try{lee=buff.readLine();}

  28. catch(Exception ex){

  29. ex.printStackTrace(System.err);}

  30. return lee;

  31. }//final de la funcion leer

  32. }//final de la clase


Como podemos ver desde la línea 26 a la 32 se define la función estática leer, que es pública y devolverá datos de tipo String, esta función para poder procesar la lectura necesita que le pasemos como argumento un objeto del tipo BufferedReader que es el encargado de leer las líneas, esta función tiene como objetivo que no se repita el código de control de errores y en el futuro podremos modificar esta función o fabricar otra para leer números que revise una correcta entrada de datos.

Bien, ahora veamos el código mejorado utilizando una función para leer texto y otra para los números enteros:

  1. package com.compunauta.aprendiendojava;

  2. import java.io.*;

  3. /**

  4. * <p>Título: Aprendiendo Java</p>

  5. * <p>Descripción: Ejemplos del Libro Aprendiendo Java de Compunauta</p>

  6. * <p>Copyright: Copyright (c) 2006 www.compunauta.com</p>

  7. * <p>Empresa: COMPUNAUTA</p>

  8. * @author Gustavo Guillermo Pérez

  9. * @version 2006.01.01

  10. */

  11. public class MetodoLeer {

  12. public static void main(String[] args) {

  13. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

  14. int acumulador=0;

  15. for(int i=0;i<3;i++){

  16. System.out.println("Ingrese el valor "+(i+1)+" de 3?");

  17. acumulador=acumulador+=Integer.parseInt(leerTexto(br));

  18. }

  19. acumulador/=3;

  20. System.out.println("Ingrese su nombre?");

  21. String nombre=leerTexto(br);

  22. System.out.println("Usuario: "+nombre+" tu promedio es:"+acumulador);

  23. }

  24.  

  25. public static String leerTexto(BufferedReader buff){

  26. String lee="";

  27. try{lee=buff.readLine();}

  28. catch(Exception ex){

  29. ex.printStackTrace(System.err);}

  30. return lee;

  31. }//final de la funcion leer

  32. public static int leerInt(BufferedReader buff){

  33. int lee=0;

  34. boolean error;

  35. do {

  36. error=false;

  37. try {lee = Integer.parseInt(buff.readLine());}

  38. catch (NumberFormatException ex) {

  39. System.out.println("Entrada erronea, repetir:?");

  40. error=true;}

  41. catch (Exception ex){ex.printStackTrace(System.err);}

  42. } while (error);

  43. return lee;

  44. }//final de la funcion leer

  45.  

  46. }


leavecomment

*Hasta que esta leyenda no desaparezca el libro no ha sido terminado, descarge en pdf:

http://compunauta.com/forums/linux/programacion/java/ebook.html




Aprendiendo Java - Ejemplos resueltos, Ejercicios, prácicas y técnicas de programación con Java #1 - ezine - ©Compunauta - myblog - Anuncios - 1072