gdzie błąd?

0

Zaimplementuj klasę TablicaFloat, w której znajduje się tablica liczb typu int. Klasa przyjmuje w konstruktorze ilość elementów tablicy. Elementy tablicy losowane są w konstruktorze. Gdzie robie bład, skoro wyskakuje i komunikat jak na samym koncu. Z gory dzieki za odpowiedz. Pozdrawiam
To jest moj main:


public class Main {
public static void main(String[] args) {

    TablicaFLoat t1 = new TablicaFLoat(3);

    t1.print();

}
}


Tj moja klasa:


import java.util.Random;

public class TablicaFLoat {

int a;
Random r = new Random();
int [] t = new int[a];

TablicaFLoat(int A) {
    this.a = A;
    for (int i = 0; i<A; i++) {
        t[i] = r.nextInt(10);
        System.out.println(t[i]);
    }
}

void print(){
    System.out.println(t[2] + t[3]);
    }

}


po kompilacji:


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at TablicaFLoat.<init>(TablicaFLoat.java:12)
at Main.main(Main.java:4)

Process finished with exit code 11

0

Jest napisane jak byk że przekroczyłeś rozmiar tablicy.

0

ale dlaczego? skoro ustawiam rozmiar tablicy jako zmianna a (A), a jest warunek,że i<A?

0

Twoje tablica ma rozmiar 0.

int a; // nie ustawiasz czyli jest 0
Random r = new Random();
int [] t = new int[a];

To, że później ustawiasz a , nie ma znaczenia. Too late. Wskazówka. Po ustawieniu a zainicjalizuj tablicę.

0

A może tak (a czemu float jak jest integer?):

import java.util.Random;
class TablicaFloat {

 int [] t;

TablicaFloat(int A) {
  Random r = new Random();
    t = new int[A];
    for (int i = 0; i<A; i++) {
        t[i] = r.nextInt(10);
        System.out.println(t[i]);
     }
  }

void print(){
    System.out.println(t[2] + t[3]);
    }
}
0

teraz śmiga, dzięki wielkie. W dalszych punktach zadania jest float, może temu. Dziękuje i pozdrowionka!

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0