Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java objekt

Ahoj, potřeboval bych poradit ohledně objektů v Javě.

Mám class strávník,

Abych založil objekt, použiju příkaz:

Stravnik Petr = new Stravnik("Petr", 2);

Kdy číslo (2) - reprezentuje proměnnou tzv hlad. (netřeba vysvětlovat).

Na začátku programu se pomocí scanneru zadá počet jmen (objektů).

Např 3, tak mám tedy vytvořit 3 objekty, kterým zadám z klávesnice jméno a hlad:

for (int i = 0; i < 3; i ++){
System.out.println("Zadej jmeno: ");
jmeno = sc.nextLine();

System.out.println("Zadej uroven hladu: ");
hlad = sc.nextInt();

Stravnik jmeno = new Stravnik(jmeno, hlad);

}

Proč to takhle nejde? Založit objekt a použít proměnnou jmeno a hlad? Jak to udělat jinak? Poradí někdo?

Předmět Autor Datum
Udělat to takhle jde. Tvůj problém je v tom, že se snažíš mít dvě proměnné s názvem "jmeno".
Wikan 11.03.2013 07:39
Wikan
Někde nadtím máš nadeklarovanou proměnnou String "jmeno" a poté do nějakého strávníka "jmeno" vytvář…
freez2 11.03.2013 07:50
freez2
Díky za radu a ponaučení :-) poslední
MašinkaTomáš 11.03.2013 12:29
MašinkaTomáš

Někde nadtím máš nadeklarovanou proměnnou String "jmeno" a poté do nějakého strávníka "jmeno" vytváříš objekt strávníka - dvě proměnné se nemůžou jmenovat stejně.
A když už říkáš, že chceš vytvořit třeba 3 strávníky, tak v tvém kódu 3 strávníky nevytvoříš, ale v každém průběhu cyklu sice vytvoříš strávníka nového, ale strávníka z minulého průchodu jsi již ztratil - zůstane ti pouze třetí strávník a to pouze uvnitř toho cyklu for, jelikož jsi ho nadeklaroval uvnitř.
Nejlepší by bylo (pokud chceš uložit strávníků víc) si nad hlavičkou cyklu vytvořit pole o velikosti 3 a potom do pole ukládat nějak takto...:

Stravnik[] stravnici = new Stravnik[3];
String jmeno;
int hlad;
for (int i = 0 ; i < 3; i++){
   System.out.println("Zadej jmeno: ");
   jmeno = sc.nextLine();

   System.out.println("Zadej uroven hladu: ");
   hlad = sc.nextInt();

   stravnici[i] = new Stravnik(jmeno, hlad);
}

...a až cyklus doběhne, máš v poli 3 strávníky se zadanými hodnotami.

Zpět do poradny Odpovědět na původní otázku Nahoru