NoSuchMethodError med programkode
Hej!Jeg er nybegynder i JAVA
Jeg har skrevet et program i Java. Det kan uden problemer kompileres, men når jeg kører det fra Textpad får jeg en DOSprompt med meddelelsen:
NoSuchMethodError. Jeg har prøvet at læse dokumentationen men jeg kan ikke få programmet til at køre. Herunder er programkoden. (Den er ikke færdig endnu)
M.v.h.
Kasper
import javagently.*;
import java.io.*;
// Program af Kasper Larsen
class Bank {
Konto konto1, konto2, konto3, konto4, konto5;
Stream dataIn, saldoIn, saldoOut;
Display d;
double saldo1,saldo2,saldo3,saldo4,saldo5;
String fejlkode=\"Den indtastede kode er forkert\", velkommen=\"\\n\\nVelkommen i Finansbanken \";
Bank () throws IOException {
// opretter filer. data.dat: kundeoplysninger - saldo.dat: saldooplysninger
dataIn = new Stream(\"data.dat\", Stream.WRITE);
saldoIn = new Stream(\"saldo.dat\", Stream.WRITE);
saldoOut = new Stream(\"saldo.dat\", Stream.READ);
//opretter 5 konti
//Læs: navn, adr, saldo, pass(kode), rente
konto1 = new Konto(\"Georg Nielsen\",\"Fyrrelunden 23\",0,\"qad\",0.02);
konto2 = new Konto(\"Finn Clausen\",\"Markvej 47\",0,\"def\",0.02);
konto3 = new Konto(\"Ditte Skov\",\"Tigervænget 88\",0,\"ulv\",0.02);
konto4 = new Konto(\"Bjarne Olsen\",\"Sydhaven 14\",0,\"pol\",0.02);
konto5 = new Konto(\"Bente Hansen\",\"Skovdiget 30\",0,\"sak\",0.02);
skrivFilSaldo();
skrivFilKunde();
//tilskrivAlle();
d = new Display (\"Finansbanken\");
d.prompt(\"Indsæt / hæv\",\"\");
d.prompt(\"på konto (1-5)\", \"\");
d.prompt(\"kode\",\"\");
for ( ; ; ) {
d.ready(\"\\nTryk READY når din ordre er indtastet\");
//Indsamler brugerindtastningerne i variablerne
double beløbIndsæt = d.getDouble (\"Indsæt / hæv\");
int kontonr = d.getInt(\"på konto (1-5)\");
String forsøg = d.getString(\"kode\");
//Disse if-sætninger tjekker om kontonr og kode stemmer overens (vha kald til andre metoder)
if (kontonr==1){
d.println(velkommen + konto1.navn );
if (konto1.kontrolBruger(beløbIndsæt,forsøg, kontonr)==true){
d.println(konto1.overtrak + konto1.saldo);
konto1.overtrak=\"Din saldo er nu: \";
}
else{
d.println(fejlkode);
}
}
else if (kontonr==2){
d.println(velkommen + konto2.navn );
if (konto2.kontrolBruger(beløbIndsæt,forsøg, kontonr)==true){
d.println(konto2.overtrak + konto2.saldo);
konto2.overtrak=\"Din saldo er nu: \";
}
else{
d.println(fejlkode);
}
}
else if (kontonr==3){
d.println(velkommen + konto3.navn );
if (konto3.kontrolBruger(beløbIndsæt,forsøg, kontonr)==true){
d.println(konto3.overtrak + konto3.saldo);
konto3.overtrak=\"Din saldo er nu: \";
}
else{
d.println(fejlkode);
}
}
else if (kontonr==4){
d.println(velkommen + konto4.navn );
if (konto4.kontrolBruger(beløbIndsæt,forsøg, kontonr)==true){
d.println(konto4.overtrak + konto4.saldo);
konto4.overtrak=\"Din saldo er nu: \";
}
else{
d.println(fejlkode);
}
}
else if (kontonr==5){
d.println(velkommen + konto5.navn );
if (konto5.kontrolBruger(beløbIndsæt,forsøg, kontonr)==true){
d.println(konto5.overtrak + konto5.saldo);
konto5.overtrak=\"Din saldo er nu: \";
}
else{
d.println(fejlkode);
}
}
//Hvis bruger indtaster et forkert kontonr vises følgende
else{
d.println(\"Du skal indtaste et kontonr mellem 1 og 5.\\n\"+kontonr + \" er ikke godkendt\");
}
}
}
void skrivFilKunde () throws IOException{
//udskriver alle kundeoplysninger ud i filen data.dat
dataIn.println (konto1.navn + \" \" + konto1.adr + \" \" + konto1.saldo + \" \" + konto1.pass + \" \" + konto1.rente);
dataIn.println (konto2.navn + \" \" + konto2.adr + \" \" + konto2.saldo + \" \" + konto2.pass + \" \" + konto2.rente);
dataIn.println (konto3.navn + \" \" + konto3.adr + \" \" + konto3.saldo + \" \" + konto3.pass + \" \" + konto3.rente);
dataIn.println (konto4.navn + \" \" + konto4.adr + \" \" + konto4.saldo + \" \" + konto4.pass + \" \" + konto4.rente);
dataIn.println (konto5.navn + \" \" + konto5.adr + \" \" + konto5.saldo + \" \" + konto5.pass + \" \" + konto5.rente);
dataIn.close();
}
void skrivFilSaldo() throws IOException{
//skriver alle saldoer ud i filen saldo.dat
saldoIn.println(konto1.saldo);
saldoIn.println(konto2.saldo);
saldoIn.println(konto3.saldo);
saldoIn.println(konto4.saldo);
saldoIn.println(konto5.saldo);
saldoIn.close();
//indsamler alle fem saldoer i fem variabler
saldo1=saldoOut.readDouble();
saldo2=saldoOut.readDouble();
saldo3=saldoOut.readDouble();
saldo4=saldoOut.readDouble();
saldo5=saldoOut.readDouble();
}
public static void main (String [ ] args) throws IOException{
new Bank ();
}
}
class Konto {
String navn, adr, pass, overtrak=\"Din saldo er nu: \";
double saldo=0, rente;
boolean svar;
Konto (String n, String a, double s, String p, double r) {
navn = n;
adr = a;
saldo = s;
pass = p;
rente = r;
}
boolean kontrolBruger(double beløbIndsæt, String forsøg, int kontonr){
//Denne metode kalder metoden indsæt hvis kode er OK
if (checkKode(forsøg)==true){
indsæt (beløbIndsæt, kontonr);
return true;
}
else {
return false;
}
}
void indsæt (double beløbIndsæt, int kontonr) {
//Denne metode indsætter/hæver det ønskede beløb på den aktuelle konto
//samt forhindrer eventuelt overtræk
if (saldo+beløbIndsæt<0) {
overtrak=\"Du kan ikke overtrække din konto!\\nDin saldo er derfor stadig: \";
}
else{
saldo=beløbIndsæt+saldo;
}
}
void tilskriv() {
//Her til skrives rente
saldo = (saldo*rente+saldo);
}
boolean checkKode(String forsøg) {
//sammenligner den indtastede kode med den registrerede
svar = forsøg.equals(pass);
//returnerer kun true hvis koden er OK
return svar;
}
}