Java Verständnis Problem Methoden etc.

s87

Mitglied
Hi Leute,

wir Ihr seht bin ich immernoch am Ball und versuche mich bzgl. Java zu verbessern. Der nächste Schulblock steht bevor (lerne Fachinformatiker für Systemintegration) steht bevor und ich wollte die Java Aufgabe aus dem letzten Block schon mal machen weil ich es einfach nicht verstanden habe... Jetzt sitz ich davor und kann mir das schon wieder einfach nicht erklären...

Die Aufgabe lautet wie folgt: (sorry für den Roman jetzt... :))

Aufgabe Konto.java - KontoTest.java

In einer Bank werden die Konten der Kunden mit Hilfe eines objektorientierten Computerprogramms verwaltet. Vereinfacht dargestellt besitzt jeder Kunde ein Konto. Daher muss von jedem Kunden der Name und der anfängliche Kontostand bekannt sein.
Methode buchen()
Über die Methode buchen() kann der Kunde Ein- bzw. Auszahlungen vornehmen (Auszahlungen werden durch ein vorangestelltes "-" dargestellt). Die Bank zahlt jedoch nur den gewünschten Betrag vom Konto aus, wenn dieser auch in voller Höhe gedeckt ist (Kontostand >= Auszahlungsbetrag). Eine Ausgabe soll den jeweiligen Vorgang dokumentieren (erfolgreich? ja/nein).
Methode zinsenberechnen()
Das Konto wird mit einem Zinssatz von 1.25% verzinst. Durch Ausführen der Methode zinsenberechnen() werden die Zinsen für den akt. Kontostand ermittelt und an die aufrufende Stelle zurück gegeben.

  • Erstellen Sie eine "Bauplanklasse" (Konto.java), die die beschriebenen Funktionalitäten besitzt. Berücksichtigen sie auch das angegeben Klassendiagramm.
===============
Konto
===============
kontostand: double
kundenname: string
zinssatz: double
-------------------
buchen(betrag: double): void*
zinsenBerechnen(): double

  • Erstellen Sie ein ausführbare Klasse (KontoTest.java), in der ein Kundenobjekt erzeugt wird. Weisen Sie den Attributen kundenname und kontostand einen Wert zu und rufen Sie die Methoden auf. Der Kundenname, der Kontostand sowie der Buchungsbetrag sollen über die Aufrufparameter eingelsen werden. In der Klasse KontoTest sollen folgende Ausgaben stattfinden: ......................

Mein Problem ist schlicht weg das ich es einfach nicht verstehe, mir wäre sehr geholfen wenn ihr mir jetzt nicht wieder mit dem "Java ist eine Insel" Buch kommt, kann mit selbstformuliertem meist mehr anfangen...

Soweit bin ich gekommen ^^

Java:
//===Bauplan Klasse Konto
class Konto
{
double zinssatz, kontostand;			
String Kundenname;

//Methoden
	void buchenbetrag(betrag)
	{
	//TO DO 
	
	}
	
	double zinsberechnung()
	{
	//TODO
	}

}
  
  
class KontoTest
{
  public static void main(String[] args)
	{
	//TO DO
	int kontostand,betrag;
	String kundenname;
	
	kundenname = args[0];
	kontostand = Integer.parseInt(args[1]);
	betrag = 	Integer.parseInt(args[2]);
	
	konto kunde = new konto(); //Konto erstellen
	
	buchenbetrag(betrag);
	}
}

z.B Wenn die Methode buchen() nur einen Wert bekommt, wie in dem Fall jetzt wie viel abgehoben bzw. eingezahlt werden soll, woher will die Methode wissen mit was sie das überprüfen soll wenn ich den Kontostand gar nicht mehr in die Methode gebe????

Und wie soll in der zinsenBerechnen() was passiereb wenn die gar nichts bekommt??? Ich versteh es echt überhaupt nicht! :(
Danke schon mal :)

Grüße
 
Zuletzt bearbeitet:

Michael...

Top Contributor
woher will die Methode wissen mit was sie das überprüfen soll wenn ich den Kontostand gar nicht mehr in die Methode gebe????

Und wie soll in der zinsenBerechnen() was passiereb wenn die gar nichts bekommt?
Die Methoden können ja auf die Instanzvariablen zugreifen. Eventuell mal ein paar Kapitel zurück springen Globale vs. lokale Variablen

Benutzt Du eine Entwicklungsumgebung? Die würde Dir die Fehler im Code gleich highlighten - würde das coden ein bisschen erleichtern.

Ansonsten als Starthilfe
Java:
	class Konto {
		private String name;
		private double kontostand, zinssatz= 0.0125;
		
		public Konto(String name, double startBetrag) {
			this.name = name;
			this.kontostand = startBetrag;
		}
		
		public void buchen(double betrag) {
			//To do
		}
		
		public double zinsBerechnen() {
			//To do
			return 0.0;
		}
	}
 

s87

Mitglied
hi danke für die schnelle Antwort, und nein benutze ich nicht (Notepad++) wie in der Schule und in der Abschlussprüfung auch! :)

naja so wirklich wird mir nicht klar was du mir damit sagen willst aber ich versuch mal was draus zu machen...

btw. dieses "this." haben wir noch nie benutzt... ^^

cheers
 
Zuletzt bearbeitet:

Wortraum

Bekanntes Mitglied
Du hat doch in der Klasse konto eine Variable kontostand, mit der kann buchebetrag(double) natürlich arbeiten.

Allerdings wird in Deiner Klasse der Variable nirgends ein Wert zugewiesen. Den kannst Du beispielsweise über den Konstruktor zuweisen, dann kann er nur einmal beim Erzeugen des Objektes angegeben werden; oder Du kannst einen Setter setzeKontostand(double stand) dafür schreiben, dann kann er jederzeit über diese Methode geändert werden.

Java:
public class Konto {
    private String besitzer
    private double kontostand;
    private double zinssatz = 0.0125d;

    public Konto(String besitzer, double kontostand) {
        this.besitzer = besitzer;
        this.kontostand = kontostand;
    }

    public void buchen(double betrag) {
        if (betrag < 0 && kontostand + betrag < 0) {
            System.out.println("Zu wenig Geld auf dem Konto.");
        } else {
            kontostand += betrag;
            System.out.println("Es wurden " + betrag + " Taler verbucht.");
        }
    }

    public double gibKontostand() {
        return kontostand;
    }
}
Nun muß beim Erzeugen eines Kontoobjektes ein String (zum Beispiel der Kundenname) und der Kontostand angegeben werden. Die Daten sind gekapselt, wie es sich gehört, das heißt: die Variable kontostand ist privat, die sieht niemand von außerhalb und kann sie auch nicht ändern; den Kontostand kann man sich aber jederzeit mit gibKontostand() zurückgeben lassen.
 
Zuletzt bearbeitet:

s87

Mitglied
Danke Wortraum, ich seh schon wir werden noch Freunde xD

Kann ich das so machen btgl. der Variablen?

Java:
//===Bauplan Klasse Konto
class Konto
{
private double	zinssatz=1.25,
						kontostand;
			
private String		Kundenname;

//Methoden
	void buchenbetrag(betrag)
	{
	//TO DO 
	}
	
	double zinsberechnung()
	{
	//TODO
	return 0.0;
	
	}

}
  
  
class KontoTest
{
  public static void main(String[] args)
	{
	//TO DO
	int 		kontostand,
				betrag;
	String 	kundenname;
	
	kundenname = 	args[0];
	kontostand = 	Integer.parseInt(args[1]);
	betrag = 			Integer.parseInt(args[2]);
	
	konto kunde = new konto(); //Konto erstellen
	kunde.kundenname = kundenname;
	kunde.kontostand = kontostand;
	kunde.betrag = betrag;
	
	buchenbetrag(betrag);
	}
}
 

Wortraum

Bekanntes Mitglied
btw. dieses "this." haben wir noch nie benutzt... ^^
Das sagt nur, daß die Klassenvariable verwendet werden soll, wenn es noch eine zweite mit gleichem Namen gibt.

Java:
public class EineKlasse {
    private String eineVariable;
    private String nochEine;

    public void einBeispiel(String eineVariable, String name) {
        /* eineVariable von der vorherigen Zeile überdeckt eineVariable aus Zeile 2 */
        /* Klassenvariablen (Zeile 2 und 3) kann man immer mit this.Variable ansprechen. */
        /* Wir wollen nun der Variable aus Zeile 2 den Wert des übergebenen Parameters zuweisen. */
        this.eineVariable = eineVariable;
        nochEine = name;
        /* Bei nochEine war das this nicht notwendig, da es nur eine Variable nochEine gibt, nämlich */
        /* die aus Zeile drei. */
    }
}
 

Michael...

Top Contributor
Bzgl Zeile 39 bis 41:
Kundenname in Klasse Konto <> kundenname in Klasse Kontotest
Abgesehen davon sind Kundenname und kontostand private --> sie können nicht von "aussen" modifiziert werden. Macht man üblicher Weise auch nicht sondern benutzt get und set Methoden bzw. übergibt (wie in meiner Bsp. Klasse) Variablen per Konstruktor
Die Variable betrag existiert in der Klasse Konto gar nicht.

Zeile 10: void buchenbetrag(betrag)
ist nicht komplierbar die Angabe des Variablen Typs fehlt
--> void buchenbetrag(double betrag)
oder schöner public void buchenbetrag(double betrag)
 

Wortraum

Bekanntes Mitglied
EDIT: Michael hat Dir noch die anderen Fehler erklärt und sich das ganze im Detail angeschaut. Ich habe es Dir eher allgemein beschrieben.

Kann ich das so machen btgl. der Variablen?
Jain und nein.

Zum Jain:
Zeile 39 und 40 sind allgemein möglich, aber so sollte man es niemals machen! Wie ein Objekt intern aussieht, wo, wie und was es intern speichert, sollte man von außen (hier in main) nicht sehen können. Außerdem hat jedes Objekt einen Zustand, also bestimmte Belegungen der Variablen, und den sollte man von außen nicht beliebig ändern können, indem man irgendwelche Variablen manipuliert. Ein Objekt sollte in sich immer gekapselt sein und nur zulassen, was es selbst will, indem es die entsprechenden Schnittstellen (Methoden) anbietet.

Zum Nein:
In Deinem Fall hast Du sogar schon verhindert, daß das geht, nämlich indem Du die Variablen in den Zeilen 4 und 7 private gesetzt hast. Sie sind daher nur innerhalb Konto bekannt, nicht aber in KontoTest; wären sie auf public gesetzt – und das wäre ganz schlecht! –, dann könntest Du die Zuweisung konto.kontostand = 100 ausführen.

In meinem Quelltext kann man den Kontostand nur beim Anlegen übergeben und dann nicht mehr ändern. So ist es auch bei einem normalen Konto. Der Konstruktor könnte auch noch prüfen, ob der Anfangskontostand positiv ist und andernfalls eine Fehlermeldung ausgeben, das Objekt kann also Werte akzeptieren oder abweisen.

Da man von außen nicht mehr auf Kontostand zugreifen kann, braucht man noch eine Methode der Art gibKontostand(), die den Kontostand zurückliefert. So eine Methode kann ganz einfach aufgebaut sein, aber auch kompliziert, indem sie erst noch etwas berechnet, prüft oder Daten konvertiert. Solche Methoden nennt man Getter.

Eine Entwicklungsumgebung wie Eclipse oder Netbeans hat für so etwas sogar extra Tastenkürzel oder Kontextmenüs, die für eine Variable automatisch Getter und Setter erzeugen. Setter ist einfach der Gegenpart zum Getter: das eine dient zum Setzen, das andere zum Zurückgeben.

Es ist eigentlich wie im richtigen Leben: An der Kasse im Supermarkt sind der Käufer und die Kassierin auch getrennt. Sie berechnet den zu zahlenden Betrag, und den zahlt man nicht, indem man ihr einfach das Geld in ihre Kasse stopft (also einfach eine Variable zuweist), sondern indem man es ihr ordentlich in die Hand gibt. Sie prüft, ob der Betrag stimmt, prüft vielleicht die Geldscheine auf Echtheit, sortiert das Geld dann nach ihrem System in die Fächer der Kasse und gibt das Wechselgeld zurück. Das eine „Objekt“ greift dem anderen niemals einfach in die Kasse oder die Geldbörse und stiftet Unordnung und Chaos, sondern alles läuft immer schön und geordnet über die Schnittstelle Hand ab.
 
Zuletzt bearbeitet:

s87

Mitglied
hmm,...ich bin euch ja echt sehr dankbar aber wie zum Teufel kann ich das dann machen? Ich habe wirklich absolut keine Ahnung wie ich dann die Sachen dort übergeben soll...

200 Puls hab,........bald! -.-'
 

s87

Mitglied
Zwischenstand:

Java:
//BAUPLANKLASSE KONTO
class konto
{
//VARs
private double zinssatz=1.25, kontostand;
private String	Kundenname;

//METHODEN
	public void buchenbetrag(double betrag)
	{
	System.out.println("bal!");
	}
	
	public double zinsberechnung()
	{
	return 0.0; 
	}

}
//KLASSE KONTOTEST
class KontoTest
{
  public static void main(String[] args)
	{
	//VARs
	int kontostand;
	String kundenname;
	double test, betrag;
	
	//LESE PARAMETER 
	kundenname = args[0];
	kontostand = Integer.parseInt(args[1]);
	betrag = Integer.parseInt(args[2]);
	
	//ERZEUGE 
	konto kunde;
	kunde = new konto();

	
	//RUFE AUF...
	konto.buchenbetrag(betrag);
	//zinsberechnung();
	}
}

in Z43 ist ein Fehler aber egal was ich ändere bringt er mir einen Fehler so wie es jetzt dort steht kommt der Fehler "non Static method buchenbetrag(double) cannot be referenced from a static context...

oooooooooooh man wie mich sowas aggresiv macht, wegen so ner f@#k aufgabe nicht weiter zu kommen.............................. so schwer kanns ja nich sein oder? -.-
 

myjday

Aktives Mitglied
Schönen guten Morgen,

wenn ich das richtig sehe, ....

Java:
    //ERZEUGE 
    konto kunde;
    kunde = new konto();
 
    
    //RUFE AUF...
    konto.buchenbetrag(betrag);

versuchst Du die statische Methode buchenbetrag(...) aus der Klasse konto aufzurufen.
In Deiner klasse konto ist diese Methode aber nicht als statisch gekennzeichnet.

Java:
 public void buchenbetrag(double betrag)
    {
    System.out.println("bal!");
    }

Probiers mal mit

Java:
 public static void buchenbetrag(double betrag)
    {
    System.out.println("bal!");
    }

... oder ruf die Methode nicht über den Klassennamen sondern über das angelegte Objekt auf.

Schau raus, die Sonne scheint ....

Gruß,
myjday
 

eRaaaa

Top Contributor
oooooooooooh man wie mich sowas aggresiv macht, wegen so ner f@#k aufgabe nicht weiter zu kommen
Hui..bleib ruhig, wird schon
so schwer kanns ja nich sein oder? -.-

Richtig ! =)

Zu deinem Fehler, solltest du dir mal folgendes durchlesen:
http://www.java-forum.org/stichwort...ic-method-cant-referenced-static-context.html

Du erstellst ja zuvor sogar ein Objekt, wieso rufst du dann die Methode nicht einfach auch auf dem Objekt auf?
[c]kunde.buchenbetrag(betrag);[/c]

p.s.: Wieso hast du jetzt den Anfangsbuchstaben des Klassennames kleingeschrieben? Vorher mit Großbuchstaben war das schon ganz richtig (Wortraum hat dir doch auch schon eine Grundlage/bzw fast alles ausprogrammiert :D )
 

s87

Mitglied
haha das mit der Groß/Klein Schreibung war n Test... Wollte es eig. wieder groß schreiben bevor ich es hier poste ^^

das heisst wenn ich es über Kunde aufrufe, kann ich mir diesen pupblic static void klimbim sparen?!

wenn ich es über kunde aufrufe reicht void buchenbetrag(double betrag) odeR?

Sehr gut hatte das nicht verstanden warum das so nicht geht... na gut ich hoff ich bin ez mal n stück weiter und schau mal wie weit ich jetzt komme...!!!

vielen dank ich profis :D

edit:

hehe ich dachte das wär des rätsels lösung aber da war ja noch mein problem von vorher, der methode buchenbetrag(betrag) wird wie man ja sieht nur der betrag übergeben, aber NICHT der kontostand,.. wie kann ich jetzt in der klasse mit dem kontostand arbeiten wenn der nicht übergeben wird, ist dass das mit dem THIS.? ^^
 
Zuletzt bearbeitet:

myjday

Aktives Mitglied
zum Klimbim:

Jedes Objekt besitzt eigene Eigenschaften (Variablen) in die es seine eigenen Werte abspeichern kann.
Gibt es zwanzig Objekte, so besitzt jedes Objekt für seine eigenen Werte eigenen Speicher.

Gibst Du jetzt einer Eigenschaft den Zusatz static, so steht dieser Speicher allen Objekten gemeinsam nur einmal zur Verfügung.

Bei Methoden bringt static den Vorteil, dass Sie nicht an ein bestimmtes Objekt gebunden sind. Das bedeutet, sie sind aufrufbar bevor überhaupt ein Objekt der zugehörigen Klasse existiert.

Daher auch die Möglichkeit statische Methoden über den Klassenname aufzurufen.

siehe public static void main(...)

Wann Du Klimbim machst hängt immer davon ab was Du vorhast ....

Gruß,
myjday
 

eRaaaa

Top Contributor
edit:

hehe ich dachte das wär des rätsels lösung aber da war ja noch mein problem von vorher, der methode buchenbetrag(betrag) wird wie man ja sieht nur der betrag übergeben, aber NICHT der kontostand,.. wie kann ich jetzt in der klasse mit dem kontostand arbeiten wenn der nicht übergeben wird, ist dass das mit dem THIS.? ^^

Schau dir doch das Beispiel von Wortraum an
Java:
    public void buchen(double betrag) {
        if (betrag < 0 && kontostand + betrag < 0) {
            System.out.println("Zu wenig Geld auf dem Konto.");
        } else {
            kontostand += betrag;
            System.out.println("Es wurden " + betrag + " Taler verbucht.");
        }
    }

Ja, man könnte
Code:
this.kontostand
anstelle von
Code:
kontostand
benutzen, um darauf hinzuweisen, dass es sich um eine Objektvariable handelt, aber unbedingt notwendig ist es an dieser Stelle nicht!
 

w0ddes

Bekanntes Mitglied
Um deinem "kunden" einen Kontostand zu geben müsstest du evtl noch einen Konstruktor einbauen:

Java:
class Konto
{
    double zinssatz, kontostand;            
    String Kundenname;
    
    public Konto(double kontostand){
        this.kontostand = kontostand;
    }

//....

Wenn du dann aufrufst
Code:
Konto kunde = new Konto(0);
hast du einen kunden mit dem Kontostand "0" erschaffen. Nun machst du
Code:
 kunde.buchenbetrag(betrag);
und das wird zu den "0" dazuaddiert und so dann auch im "kunden" gespeichert. Hoffe das war n bisschen verständlich so?! :D

Edit: natürlich könnte man den Konstruktor noch eweitern, dass man sofort Name & Kontostand übergeben kann.

Bsp:
Java:
public Konto(String kundenname, double kontostand){
    this.kundenname = kundenname;
    this.kontostand = kontostand;
}
dann kannst du sogar gleich nach deinem parsen aufrufen:
Java:
Konto kunde = new Konto(kundenname, kontostand);
kunde.buchenbetrag(betrag);


Edit 2: Ach, ich würde noch aufpassen: In der Klasse Konto benutzt du
Code:
double
s aber du parst die benutzereingabe nur zu
Code:
 int
s ..
Sollte man so abändern:
Java:
   kontostand = Double.parseDouble(args[1]);
    betrag = Double.parseDouble(args[2]);


Achtung! Aller Code ohne Gewähr auf richtige Schreibweise!
 
Zuletzt bearbeitet:

s87

Mitglied
ihr haltet mich sicher für dumm,... aber so ganz klar ist mir das noch nicht alles ich hoffe das klärt sihc im nächsten schulblock!

wenn ich das jetzt so mache, wie ihr meintet:

Java:
//_BAUPLANKLASSE KONTO
class Konto
{

//_VARs
private double zinssatz=1.25, kontostand;
private String	Kundenname;

//_
public Konto(double kontostand)
{
this.kontostand = kontostand;
}

//_METHODEN
	public void buchen(double betrag)
	{
	System.out.println(kontostand);
	System.out.println(betrag);
	}
	
	public double zinsberechnung()
	{
	return 0.0; 
	}

}
//_KLASSE KONTOTEST
class KontoTest
{
  public static void main(String[] args)
	{
	
	//_VARs
	double kontostand; 
	double betrag;
	String kundenname;
	
	//_LESE PARAMETER 
	kundenname = args[0];
	kontostand = Double.parseDouble(args[1]);
	betrag = Double.parseDouble(args[2]);
	
	//_ERZEUGE 
	Konto kunde;
	kunde = new Konto();
	
	//_RUFE AUF...
	kunde.buchen(betrag);
	//zinsberechnung();
	}
}

kommt folgender fehler:

KontoTest.java:47: connot find symbol
symbol: constructor Konto()
location class Konto
kunde = new Konto();

woah, ich muss dazu sagen ich war schon immer schlecht im Programmieren weil ich mir es einfach NIE erklären kann... zwar kann ich das theoretische aber sobalds praktisch wird schaltet mein gehirn ab!
 

eRaaaa

Top Contributor
Du hast doch jetzt einen Konstruktor eingefügt, der einen Parameter erwartet
Code:
public Konto(double kontostand)
, dann kannst du natürlich nicht mehr sagen: new Konto(); <-- weil du da eben keinen Parameter übergibst ! Also gebe dem Konstruktor einfach den Kontostand mit..
Code:
kunde = new Konto(kontostand);
...
 

s87

Mitglied
sodala, VIELEN DANK AN EUCH ALLE... super FORUM!!!

Java:
//_BAUPLANKLASSE KONTO
class Konto
{

//_VARs
private double zinssatz=0.0125d, kontostand, betrag, zins;
private String	Kundenname;

//_
public Konto(double kontostand, double betrag)
{
this.kontostand = kontostand;
this.betrag = betrag;
}

//_METHODEN
//__BUCHEN
	public void buchen(double betrag)
	{
	 if (betrag < 0 && kontostand + betrag < 0) {
				System.out.println("Buchung nicht moeglich! - Guthaben zu gering!");
				} else {
				kontostand += betrag;
				System.out.println("Buchung erfolgreich!");
				}
	System.out.println("Kontostand:" +kontostand);
	}
	
//__ZINSEN	
	public double zinsberechnung()
	{
	zins = kontostand * zinssatz;
	System.out.println("Zinsen auf akt. Kontostand: " + zins + " Euro");
				if(betrag<0 && kontostand-betrag<0){
				kontostand -= betrag;
				}else{
				kontostand += zins;
				} 
		
	return(kontostand); 
	}

}
//_KLASSE KONTOTEST
class KontoTest
{
  public static void main(String[] args)
	{
	
	//_VARs
	double kontostand, betrag, aktStand;
	String kundenname;
	
	//_LESE PARAMETER 
	kundenname = args[0];
	kontostand = Double.parseDouble(args[1]);
	betrag = Double.parseDouble(args[2]);
	
	//_ERZEUGE 
	Konto kunde;
	kunde = new Konto(kontostand,betrag);
	
	//_RUFE AUF...
	
	//__buchen()
	System.out.println("Kunde:" +kundenname);
	kunde.buchen(betrag);
	
	//__zinsbrerechnung()
	aktStand = kunde.zinsberechnung();
	System.out.println(aktStand);
	}
}

Falls ihr mal nicht wisst, wie man ne Integer-Variable erstellt, helf ich euch auch gerne! :D

schönen Abend noch... :p
 

Wortraum

Bekanntes Mitglied
@s87:
Dein Problem ist, daß Du nicht weißt, was Klassen und was Objekte sind und wie man Objekte erzeugt. Bei der objektorientierten Programmierung erweist sich das als kleines Defizit. Im Buch „Java ist auch eine Insel“ gibt es dazu ein eigenes Kapitel. Ich habe das nie gelesen, also kann ich Dir nicht sagen, ob diese Quelle nun ratsam ist oder Du nicht besser woanders nachlesen solltest.

Meine Klasse Konto war übrigens gebrauchsfertig. Dort siehst Du, daß jedes Konto einen Besitzer, einen Kontostand und einen Zinssatz haben soll, die in den gleichnamigen Variablen besitzer, kontostand und zinssatz gespeichert werden.

Die Klasse dient aber nur als Bauplan, mit dem Objekte erzeugt werden. Von der Klasse Konto kann man also beliebig viele Konto-Objekte erzeugen, und jedes einzelne hat dann einen Besitzer, einen Kontostand und einen Zinssatz. Das Erzeugen eines Objektes aus einer Klasse geht mit der Anweisung new.

Der Besitzer und der Kontostand können nur bei der Erzeugung eines neues Kontos festgelegt werden, indem sie dem Konstruktor mitgegeben werden:
Java:
Konto timsKonto = new Konto("Tim Buktu", "1500");
Konto paulsKonto = new Konto("Paul Ahna", "500");
Konto heinzensKonto = new Konto("Heinz Ellmann", "0");

Nun haben wir drei Konto-Objekte erzeugt, jedes mit einem anderen Besitzer und mit anderem Kontostand. Den Kontostand in einem dieser Objekte können wir mit seiner Methode buchen(double betrag) ändern. Wenn wir auf Paul Ahnas Konto 250 Einheiten Geld zahlen wollen, machen wir das so:
Java:
paulsKonto.buchen(250);

Die Methode wird aufgerufen und ändert den Zustand des Objektes, zählt also zum Kontostand 250 dazu (Zeile 15) und gibt dann aus: „Es wurden 250 Taler verbucht“. Ob das wirklich funktioniert hat, können wir uns auch anschauen:
Java:
double stand = paulsKonto.gibKontostand();
System.out.println("Pauls Kontostand beträgt: " + stand); /* => 750 */
/* Wir können uns auch noch den Kontostand von Tims Konto anzeigen,
 * den haben wir aber nicht geändert, daher ist er noch so, wie wir ihn bei
 * Objekterzeugung übergaben.
 */
System.out.println("Tims Kontostand beträgt: " + timsKonto.gibKontostand()); /* => 1500 */

Versuchen wir, von Heinzens Konto Geld abzuheben, bekommen wir die Meldung, daß zu wenig Geld drauf ist:
Java:
heinzensKonto.buchen(-100); /* => Zu wenig Geld auf dem Konto. */
 
Zuletzt bearbeitet:

s87

Mitglied
hehe ich werd mir auf jedenfall nochmal durch lesen. hab mir jetzt erstmal das skript von nem schulfreund zu kommen lassen und das gelesen...

aber wie kommst du jetzt da drauf? steht da irgendwo bockmisst? :D
 

Wortraum

Bekanntes Mitglied
Lies meinen Beitrag bitte nochmal, da habe ich nämlich gerade noch vieles erklärt, was eben noch nicht dort stand.

> aber wie kommst du jetzt da drauf? steht da irgendwo bockmisst?
Nein, Bockmist nicht, aber Dir fehlen wohl noch die Zusammenhänge von Klassen, Objekten, Objektvariablen und Konstruktoren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
M Java Code Verständnis Java Basics - Anfänger-Themen 4
M Java Code Verständnis Java Basics - Anfänger-Themen 2
J java syntax verständnis Java Basics - Anfänger-Themen 6
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben