Zdravím,
mám chybu v rozdělaným příkladu, poradil by někdo. Jsem samouk a podle toho to vypadá.
Chyba se nalézá v 73,83 a 84 řádku.
Hlavní třída:
package bankomat;
import java.util.*;
/**
*
* @author marek
*/
public class Bankomat {
private int hotovost;
SeznamZakazniku[] pole = new SeznamZakazniku[50];
public Bankomat(int hotovost) {
this.hotovost = hotovost;
}
public static int NactiInt() {
do {
try {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
sc.nextLine(); /* Vyprázdní Buffer klávesnice*/
return i;
} catch (InputMismatchException e) {
System.out.println("Něco jste zadal špatně! \n Zkuste to znovu: ");
}
} while (true);
}
public static String NactiString() {
Scanner sc = new Scanner(System.in);
String text = sc.nextLine();
return text;
}
public static void UvodniMenu() {
System.out.println("\n DBank Vás vítá. Postupujte dle seznamu. \n");
System.out.println(" 1. Vytvoř zákazníka\n 2. Vypsat zákazníky\n 3. Přihlásit se do bankomatu\n 4. Odejít \n");
Volba();
}
public static void Volba() {
int i = NactiInt();
switch (i) {
case 1:
VytvoreniZakaznika();
break;
case 2:
VypisZakazniku();
break;
case 3:
System.out.println("Přihlásit se do bankomatu");
break;
case 4:
System.out.println("Program byl ukončen");
System.exit(0);
default:
System.out.println("Neplatný výběr možnosti. Zkuste to znovu");
Volba();
}
}
public static void VytvoreniZakaznika() {
int pocetzakazniku = 0;
System.out.println("Zadejte prvních pět čísel karty: ");
int cislokarty = NactiInt();
System.out.println("Zadejte čtyřmístný pin: ");
int pin = NactiInt();
System.out.println("Zadejte kolik jste vložil peněz na účet: ");
int stavkonta = NactiInt();
System.out.println("Zadejte jméno klienta: ");
String jmeno = NactiString();
pole[pocetzakazniku] = new Zakaznik(cislokarty, pin, stavkonta, jmeno);
pocetzakazniku = pocetzakazniku + 1;
System.out.println(" \n Právě přibyl nový klient, děkujeme.");
UvodniMenu();
}
public static void VypisZakazniku() {
for (int i = 0; i < pole.length; i++) {
System.out.println(pole[i+1] + "." + " Klient: " + ((Zakaznik) pole[i]).getJmeno() + "| karta: " + ((Zakaznik) pole[i]).getCisloKarty() + "| pin: " + ((Zakaznik) pole[i]).getPin() + "| Stav konta: " + ((Zakaznik) pole[i]).getStavKonta());
}
}
public static void main(String[] args) {
Bankomat b1 = new Bankomat(200000);
Bankomat.UvodniMenu();
}
Zde ještě další moje třídy:
package bankomat;
/**
*
* @author marek
*/
public class Zakaznik implements SeznamZakazniku {
private int cislokarty;
private int pin;
private int stavkonta;
private String jmeno;
public Zakaznik(int cislokarty, int pin, int stavkonta, String jmeno) {
this.cislokarty = cislokarty;
this.pin = pin;
this.stavkonta = stavkonta;
this.jmeno = jmeno;
}
public int getCisloKarty() {
return cislokarty;
}
public void setCisloKarty(int cislokarty) {
this.cislokarty = cislokarty;
}
public int getPin() {
return pin;
}
public void setPin(int pin) {
this.pin = pin;
}
public double getStavKonta() {
return stavkonta;
}
public void setStavKonta(int stav) {
this.stavkonta = stavkonta;
}
public String getJmeno() {
return jmeno;
}
public void setJmeno(String jmeno) {
this.jmeno = jmeno;
}
}
tuhle třídu jsem okoukal v jiným programu a abych se přiznal nevím k čemu přesně je.
package bankomat;
/**
*
* @author marek
*/
public interface SeznamZakazniku {
}
Budu rád za jakoukoli radu, která mi pomůže se tím prokousat.
Ještě v jiném vlákně (zde na foru) jsem vyčetl, že nemůžu pracovat s variable(proměnnou) v metodě, která je static, když proměnná není static.