gdzie błąd?

Odpowiedz Nowy wątek
2018-12-15 18:21
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

Pozostało 580 znaków

2018-12-15 18:30
0

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

Pozostało 580 znaków

2018-12-15 18:34
0

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

Pozostało 580 znaków

2018-12-15 18:37
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ę.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 1x, ostatnio: jarekr000000, 2018-12-15 18:37

Pozostało 580 znaków

2018-12-15 18:39

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]);
    }
}

edytowany 1x, ostatnio: lion137, 2018-12-15 18:41

Pozostało 580 znaków

2018-12-15 18:55
0

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

edytowany 1x, ostatnio: janusz0612, 2018-12-15 18:55
Proszę bardzo. Jak na pewno to jest to, to zaakceptuj odpowiedź, żeby inni widzieli. - lion137 2018-12-15 19:02

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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