Foro de elhacker.net

Programación => Java => Mensaje iniciado por: montalvo en 22 Octubre 2016, 17:01 pm



Título: Error al pasar un array al método contructor de un objeto
Publicado por: montalvo en 22 Octubre 2016, 17:01 pm
Buenos días, necesito ayuda con un pequeño ejercicio de Java. El problema que tengo es que una vez creado el array, al pasarle como referencia a un método constructor de un objeto, me da error. El ejercicio es el siguiente:

La clase Math2 para crear objetos de tipo Math2 formados por un array y un tamaño qu eobtenemos de dicho array:

Código
  1. final class Math2{
  2.  
  3.    private int longitud;
  4.    public float[] lista;
  5.  
  6.    public void Math2(float[] lista){
  7.        this.lista=lista;
  8.        this.longitud=lista.length;
  9.    }
   

Y la clase PruebaMath2 que trabaja con instancias de la clase Math2:

Código
  1. public class PruebaMath2 {
  2.  
  3.    public static void main(String[] args){
  4.  
  5.        System.out.print("Introduce el numero de elementos del array: ");
  6.        int longitud = MyInput.readInt();
  7.        float[] array = new float [longitud];
  8.        System.out.println("Introduce los elementos del array:");
  9.        for (int i=0; i<longitud; i++)
  10.            array[i]=MyInput.readFloat();
  11.  
  12.        Math2 lista = new Math2(array);  //aqui es donde me aparece el error
  13.    }
  14. }

El error que me sale es:

constructor Math2 in class Math2 cannot be applied to given types;
  required: no arguments
  found: float[]
  reason: actual and formal argument lists differ in length

pero no le entiendo.  :huh: :huh:

Espero su ayuda, gracias.


Título: Re: Error al pasar un array al método contructor de un objeto
Publicado por: PabloPbl en 23 Octubre 2016, 02:35 am
Hola, intenta quitando el void del metodo:
Código
  1. public "void" Math2(float[] lista){
  2.        this.lista=lista;
  3.        this.longitud=lista.length;
  4.    }

Así:
Código
  1. public Math2(float[] lista){
  2.        this.lista=lista;
  3.        this.longitud=lista.length;
  4.    }

De esta forma te reconocerá el constructor cuando instancies un objeto de esta clase.

Saludos!