Error al pasar un array al método contructor de un objeto

Iniciado por montalvo, 22 Octubre 2016, 17:01 PM

0 Miembros y 1 Visitante están viendo este tema.

montalvo

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 (java) [Seleccionar]
final class Math2{

    private int longitud;
    public float[] lista;
   
    public void Math2(float[] lista){
        this.lista=lista;
        this.longitud=lista.length;
    }

   

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

Código (java) [Seleccionar]
public class PruebaMath2 {
   
    public static void main(String[] args){
       
        System.out.print("Introduce el numero de elementos del array: ");
        int longitud = MyInput.readInt();
        float[] array = new float [longitud];
        System.out.println("Introduce los elementos del array:");
        for (int i=0; i<longitud; i++)
            array[i]=MyInput.readFloat();
               
        Math2 lista = new Math2(array);  //aqui es donde me aparece el error
    }
}


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.

PabloPbl

Hola, intenta quitando el void del metodo:
Código (java) [Seleccionar]
public "void" Math2(float[] lista){
        this.lista=lista;
        this.longitud=lista.length;
    }


Así:
Código (java) [Seleccionar]
public Math2(float[] lista){
        this.lista=lista;
        this.longitud=lista.length;
    }


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

Saludos!