5 dic 2010

Métodos Tipo Void

Programación Modular

La programación modular consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

* módulo: es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original.






Variables Locales y Globales

Variables Locales

Es una variable que se declara en el interior de un método, es decir, sólo puede ser utilizada dentro del método donde fue declarada.

Variables Globales

Es una variable que se declara dentro del programa, pero en el exterior de todos los métodos, es decir, puede ser utilizada desde cualquier parte del programa.


Métodos Tipo Void

Sin Parámetros: Estos métodos no pueden recibir datos de entrada ni retornar ningun resultado en su invocación.

void Nombre(){
          Declaración de variables locales
          Cuerpo del método
}

invocación: Nombre();


Con Parámetros: Estos métodos reciben datos de entrada a través de variables locales al método (parámetros); pero, tampoco pueden retornar ningun resultado en su invocación.

void Nombre(tipo1 v1, tipo2 v2){
          Declaración de variables locales
          Cuerpo del método
}

invocación: Nombre(valor1, valor2);


Ejemplo:

Vamos a diseñar un programa que determine el área y volumen de una esfera (área: a*pi*r^2, volumen: 4/3*pi*r^3).


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class esfera extends JApplet implements ActionListener{

          //Declaración de controles de la GUI
          JLabel lblRadio;
          JTextField txtRadio;
          JButton btnProcesar, btnBorrar;
          JTextArea txtS;
          JScrollPane scpResultado;

          //Declaración de variables globales
          double radio, area, volumen;

          //Interfaz gráfica de usuario
          public void init(){
                    getContentPane().setLayout(null);

                    lblRadio = new JLabel("RADIO");
                    lblRadio.setBounds(20,20,50,23);
                    getContentPane().add(lblRadio);

                    txtRadio = new JTextField();
                    txtRadio.setBounds(90,20,100,23);
                    getContentPane().add(txtRadio);

                    btnProcesar = new JButton("PROCESAR");
                    btnProcesar.setBounds(250,20,100,23);
                    btnProcesar.addActionListener(this);
                    getContentPane().add(btnProcesar);

                    btnBorrar = new JButton("BORRAR");
                    btnBorrar.setBounds(250,50,100,23);
                    btnBorrar.addActionListener(this);
                    getContentPane().add(btnBorrar);

                    txtS = new JTextArea();
                    txtS.setFont(new Font("monospaced",0,12));

                    scpResultado = new JScrollPane(txtS);
                    scpResultado.setBounds(20,86,331,100);
                    getContentPane().add(scpResultado);
          }

          public void actionPerformed( ActionEvent e ){
                    if(e.getSource()==btnProcesar)
                              procesar();
                    if(e.getSource()==btnBorrar)
                              borrar();
          }

          //Método botón procesar
          void procesar(){
                    entradaDatos();
                    calcularArea();
                    calcularVolumen();
                    visualizarResultados();
          }

          //Método botón borrar
          void borrar(){
                    txtRadio.setText("");
                    txtS.setText("");
                    txtRadio.requestFocus();
          }

          //Ingreso de datos
          void entradaDatos(){
                    radio = Double.parseDouble(txtRadio.getText());
          }

          //Calcula el área de la esfera
          void calcularArea(){
                    area = 4*Math.PI*Math.pow(radio,2);
          }

          //Calcula el volumen de la esfera
          void calcularVolumen(){
                    volumen = (4/3)*Math.PI*Math.pow(radio,3);
          }

          //Muestra los resultados
          void visualizarResultados(){
                    txtS.setText("");
                    imprimir("Área Esfera: "+area);
                    imprimir("Volumen Esfera: "+volumen);
          }

          //Imprime una línea de texto con salto de línea
          void imprimir(String cadena){
                    txtS.append(cadena+"\n");
          }
}



* En este ejemplo se esta utilizando el método tipo void sin parámetros.

Ir a Estructura de selección multiple Switch.
Ir al siguiente ejemplo tipo void con parámetros.

1 comentario:

  1. No pude hacer que me corriera este programa, me sale el siguiente error:
    Error: no se ha encontrado el método principal en la clase esfera, defina el método principal del siguiente modo:\n public static void main(String[] args)\n de lo contrario, se deberá ampliar una clase de aplicación JavaFX javafx.application.Application

    ResponderEliminar