atrybuty
Kod :
private static int staticId = 1;
private int id;
private String tytul;
private double cena;
private int iloscStron;
Kod :
Ksiazka (String t, double c, int i)
{
tytul = t;
cena = c;
iloscStron = i;
id = staticId++;
}
Kod :
@Override
public String toString() {
return "Ksiazka nr " + id + "\nTytul=" + tytul + "\nCena=" + df.format(cena) + " zł" + "\nIlosc Stron="
+ iloscStron;
}
1. W main tworzę klika obiektów i je wyświetlam, atrybut ID mówi o ilości utworzonych książek. Tutaj mam w sumie tylko pytanie..
-staticId wynosi 0
-tworzę pierwszy obiekt (id = staticId++ czyli id = 0+1 czyli id powinno równać się 1)
-a jednak gdy wyświetlam książki to numeruje mi je od 0
-gdy staticId ustawie na 1 to jest dobrze, daje wyświetlanie książek i leci książka nr 1, 2, 3 itd.
Czego tu nie rozumiem? Co jest błędnego w moim pierwszym rozumowaniu, a co czyni drugie poprawnym?
2. Drugi problem dotyczy tablicy obiektów. W programie chcę by można było swobodnie dodawać, usuwać książki. Jak mam jednak to zrobić, skoro muszę nadać tablicy przy tworzeniu rozmiar?
Kod :
Ksiazka[] ksiazki = new Ksiazka[4];
ksiazki[0] = new Ksiazka();
ksiazki[1] = new Ksiazka();
ksiazki[2] = new Ksiazka();
ksiazki[3] = new Ksiazka("Potop", 49.99, 540);
ksiazki[1].wprowadzLosowo(sc);
ksiazki[2].wprowadz(sc);
Jedyne co mi przychodzi do głowy to użycie tego licznika i na jego podstawie tworzenie nowych tablic w main'ie... ale może jest bardziej elegancki sposób? Dodam iż wymogiem jest tutaj tablica, nie żadna inna kolekcja. No i oczywiście nie chodzi mi o napisanie za mnie całego kodu, a jednie naprowadznie mnie na odpowiedni sposób.
Zakładki