Konto löschen

Berta

Mitglied
Hallo forum,


ich hätte mal ne frage und zwar wollt ich wissen, wie man folgende aufgabe löst:


Die Methode loescheKonto(...) erhält als Parameter eine Kontonummer. Sie loscht das entsprechende Bank-
konto, sofern es existiert. Die Methode liefert true zuruck genau dann, wenn ein bestehendes Bankkonto geloscht
werden konnte. Gehen Sie davon aus, dass eine Kontonummer nicht mehrfach existiert.


ich hab folgenden methodenkopf:

public boolean loescheKonto(int nummer){
}

ich weiß jetzt nicht, wie man in java was löscht und wie man, wenn eine nummer, die in eine methode übergeben wird, weiß, ob diese nummer im speicher schon existiert oder nicht.


danke
 

Airborne

Mitglied
ein klassiker!

Du mußt das Objekt suchen, das die Kontonummer hat - das gestaltet sich je nach Liste/Array einfacher oder schwieriger.
Wenn du das Objekt sicher gefunden hast setzt du es auf den Wert "null".
 

Berta

Mitglied
wie finde ich das objekt mit der kontonummer?

ich hab hier mal den gesamten code:

Java:
class Bank{
	int blz;
	Bankkonto[] b;
	
	public Bank(int blz, int n){
	this.blz=blz;
	this.b= new Bankkonto[n];
	}
	
	public boolean neuesKonto(int nummer, int reisenummer){
	
	Bankkonto a= new Bankkonto(nummer, reisenummer);
	
	a.nummer=this.nummer;
	a.reisenummer=reisenummer;
	
	return true;
	}
	else{
	return false;
	}
	}
	
	public boolean loescheKonto(int nummer){
      //weiß nicht wie ich das objekt finde mit der nummer
	}
	
	
}

Java:
class Bankkonto{

int nummer;
double guth;
int reisenummer;

	public Bankkonto(int nummer, int reisenummer){
	this.nummer=nummer;
	this.reisenummer=reisenummer;
	this.guth=0;
	}
	
	public boolean trans(double betrag){
	if(guth+betrag>=-1000){
	guth+=betrag;
	return true;
	}
	else{
	return false;
	}
	}
}
 
M

Marcinek

Gast
In Java kannst du nur Referenzen entfernen. Die allokierung des Speichers übernimmt die VM / GC.

in diesem Fall reicht ein reines. meineListe.remove(123131);

Eventuell musst du erst das Konto aus der Liste heraussuchen um es zu entfernen. In beiden Fällen ist es trivial, wenn man in der Lage ist auch mal in ein Buch reinzuschauen.

Hinweis: Deine Liste ist ein Array. Da funktioniert das remove nicht. Da machst du einfach

meinArray[index]= null;

Gruß,

Martin
 

AlexSpritze

Bekanntes Mitglied
Mit einer For-Schleife kannst du das Array der Kontos durchgehen:

Java:
for ( int i = 0 ; i < b.length ; i++ )
 // mit b[i] auf das i-te Konto zugreifen und schauen, ob es die richtige Nummer hat...
 

Berta

Mitglied
hab es so nun geschrieben:


Java:
public boolean loescheKonto(int nummer){
	for(int i= 0; i.<b.length; i++){
	if(b[i].nummer==nummer){
	b[i].nummer=0;
	b[i].guth=0;
	b[i].reisenummer=0;
	
	return true;
	}
	else{
	return false;
	}
        }
	}

ist das korrekt?
 
Zuletzt bearbeitet:

Berta

Mitglied
So?


Java:
	public boolean loescheKonto(int nummer){
	for(int i= 0; i<b.length; i++){
	if(b[i].nummer==nummer){
	b[i]= null;
	
	return true;
	}
	
	else{
	return false;
	}
	
	}
	
	}
 
F

Firephoenix

Gast
Was macht denn der Code wenn das erste Konto nicht das Konto ist das gelöscht werden soll und das zu löschende an 2. Position ist?
Gruß
 
S

SlaterB

Gast
es gibt keine fundamentale Weltanschauung, wie ein gelöschtes Konto auszusehen hat,
das ist eine Textaufgabe mit Interpretation,

man kann die Werte im Konto auf 0/null setzen, den Array-Platz auf null oder auch das Array um eine Position verkürzen,
beantworten kann das niemand

(edit: mögliche Fehlerquellen wie von Firephoenix genannt sind natürlich wiederum nicht ohne)

noch edit:
vor dem Löschen vielleicht auch erstmal das Einfügen üben, bisher ist das Array doch immer leer
 

Neue Themen


Oben