Función void en Java

Publicado en 'Programación' por jeanrr, 28 Set 2011.





  1. jeanrr

    jeanrr Miembro nuevo

    Registro:
    9 Jul 2011
    Mensajes:
    10
    Likes:
    0




    Hola gente! estoy estudiando para mi exámen de mañana, tengo una duda, recién estoy que le meto a POO, es Java y lo estoy trabajando con NetBeans IDE 7.0.1, estoy practicando lo que son arreglos de datos primitivos. E creado una clase Arreglo el cuál maneja los datos de un vector y e creado una clase Ventana que maneja la interface visual de la solución y que utiliza la clase Arreglo. Mi pregunta es hacerca de la función "void" se que se utiliza cuándo un metodo no retorna ningun valor, caso contrario sino tuviera "void" tendria que tener un return ya que si retorna un valor. E aquí el problemita:


    //métodos
    public void llenarDatos( ){
    for(int i=0;i<nro;i++)
    datos=(int)(Math.random( )*501);
    }

    public void calcularProm( ){
    int suma=0;
    for(int i=0;i<nro;i++)
    suma=suma+datos;

    prom=suma*1.0/nro;
    }

    public String concatenarDatosVector( ){
    String cadena="";
    for(int i=0;i<nro;i++)
    cadena=cadena+datos+" ";

    return cadena;
    }

    Bueno esta es una parte del programa, noce como saber cuándo utilizar void y cuándo no, es decir cuándo se que un metodo va a retornar un valor y cuándo no.
    Espero me ayuden, gracias :)
     


  2. initiald

    initiald Miembro frecuente

    Registro:
    12 Jun 2010
    Mensajes:
    142
    Likes:
    19


    Hola todo depende del diseño tu clase, en si la forma de utilizar void en un método es muy variada y le das la utilidad según tus necesidades no hay un formato dado pero se suele utilizar para llenar datos, mandar información, crear objetos, utilizar métodos de otras clases para llenar algún atributo en particular etc.

    No pusiste toda tu clase ARREGLO así que asumí que su forma es esta, en el caso del método para llenar el array por ejemplo no es necesario que retorne nada y solamente va llenar es por eso que void es la mejor opción, pero en el método promedio si es necesario devolver algo porque esta operando con el array y tiene que devolver la información, así no necesitarías crear un atributo promedio que guarde la información cuando el mismo método puede devolver el valor. Si eres observador el constructor también es un void en donde utilizo el método get para dar la información al atributo y a la ves crear el tamaño del array donde no necesito una ves mas devolver la información.


     
    Última edición: 28 Set 2011
  3. celsoxvi

    celsoxvi Miembro de bronce

    Registro:
    1 Mar 2009
    Mensajes:
    1,196
    Likes:
    72
    Bueno, el void se utiliza mayormente cuando no se necesita devolver un valor, en este caso por ejemplo:

    PHP:
    public class ClaseOperacion {
        
    int suma;
        public 
    void Suma(int x,int y){
            
    suma x+y;
        }
        public 
    int getSuma(){
            return 
    suma;
        }
    }
    PHP:
    public class Principal {
        public static 
    void main(String[] args) {
            
    ClaseOperacion CO = new ClaseOperacion();
            
    CO.Suma(34);
            
    System.out.println(CO.getSuma());
        }
    }
    En este caso tu veras que yo utilizo un void con 2 parametros para ingresarlas en el metodo main, ahora también he creado un metodo de retorno o return para que me devuelva el valor de la operacion (int suma).
     
  4. itchyDoherty

    itchyDoherty Miembro frecuente

    Registro:
    2 Set 2010
    Mensajes:
    101
    Likes:
    26
    En teoria un metodo declarado como void si puede admitir "return". Su objetivo es salirse del metodo dada una condicion, en el siguiente ejemplo si alguien ha llamado al metodo validarArgumentos pasandole como parametro el numero cero este metodo no va hacer ninguna logica adicional solo se saldria del metodo para evitar entre otras cosas consumir recursos innecesarios del jvm por ejemplo.

    private void validarArgumentos(int i){
    if (i==0)
    {
    //Argumento invalido
    return;
    }
    else{
    hacerOtraCosa();
    }
    }


    Por otra parte es necesario que un metodo retorne un valor cuando por ejemplo se tenga que crear un objeto y este tenga que devolver un valor a otra clase que necesite instanciarla. Algo como esto:


    //Creamos un objeto comun q por ejemplo procesaria areas geometricas

    public class Area{

    public Area(){
    }

    public float getAreaTriangulo(int base, int altura){

    return (float)(base*altura)/2;

    }

    }


    //Clase que instanciaria al objeto previamente creado:

    public class Geometria{

    public void procesarAreas(){

    Area area = new Area();
    int base = 5;
    int altura = 2;

    float areaDelTriangulo = area.getAreaTriangulo(base, altura)

    }


    }
     
  5. celsoxvi

    celsoxvi Miembro de bronce

    Registro:
    1 Mar 2009
    Mensajes:
    1,196
    Likes:
    72
    Bueno también, pero lo que he dicho es digamos un Concepto básico para que el Estudiante entiende ya cuando entre mas a fondo a la POO con Java Comprenderá mas cosas. Salu2 y Suerte en este Mundo que es un Arte la POO.
     
  6. gian123

    gian123 Miembro nuevo

    Registro:
    10 Jul 2011
    Mensajes:
    39
    Likes:
    0


    Hola mira cuando ultilizas la funcion void es cuando no vas a retornar nada es decir cuando llamas a un metodo que realize una operacion.....en canbio la funcion string ,int.double...que la pones despues del metodo en tu caso:



    public String concatenarDatosVector( ){
    String cadena="";
    for(int i=0;i<nro;i++)
    cadena=cadena+datos+" ";

    return cadena;
    }


    Pones el valor de l resultado que va a devolver en tu caso pusiste String porke te va a devolver un String,,,o puedes ponderle double,,int,,etc