String an Methode einer anderen Klasse übergeben

Hallo liebe Community,

Ich versuche mir jetzt seit ein paar Tagen Java beizubringen und soweit läuft auch alles recht gut, jedoch hänge ich gerade an dem wie im Titel benannten Problem fest, dass ich nicht weiß wie ich bei einem Methodenaufruf zwei Strings (+ einen int) übergebe.
(Momentan eperementiere ich an einem Kontoprogramm rum, dass sich noch in den Anfängen befindet.)
Wenn ich also maxkonto.info() aufrufen will, kann ich die Methode scheinbar nicht mit einem String füttern, mit einem int jedoch schon.



public class Kontotest {

	public static void main(String[] args) {
		
		String kontoinhaber = "Max Mustermann ";
		String kontonummer = "1234567890";
		
		int betrag = 0;
		
		Konto maxkonto = new Konto();
		//maxkonto.auszahlen(betrag);
		maxkonto.info();
	}
}	

class  Konto{
	
	
	int kontostand = 10000;
	int dispo = -1000;
	
			
	public void einzahlen (int betrag) {
		kontostand = kontostand + betrag ;
	}
		
	public void auszahlen (int betrag) {
		if (kontostand - betrag >= dispo)
			kontostand = kontostand - betrag;
		else
			System.out.println("Nicht genug Geld");
	}
	
	public void info(){
		System.out.println(kontoinhaber);						
		System.out.println(kontonummer);							
		System.out.println("Kontostand: " + kontostand + " Euro"); 
		
	}
		
	public String toString() {
		
	return "Kontostand: " + kontostand + " Euro";
	
	}
}

Bitte nehmt es mir nicht übel falls meine Frage besonders dumm oder schlecht gestellt ist… Das ist mein erster Beitrag und ich bin ein ziemlicher Anfänger.

P.S.: SuFu hat mich leider ums verrecken nicht weitergebracht :frowning:

Du kannst einer Metode mehrere Werte übergeben, durch ein Komma getrennt:

public void info(String kontoinhaber, String kontonummer, int kontostand ){
        System.out.println(kontoinhaber);                      
        System.out.println(kontonummer);                           
        System.out.println("Kontostand: " + kontostand + " Euro");
       
    }

der Aufruf sieht dann so aus:

maxkonto.info(kontoinhaber, kontonummer, betrag);

Wichtig ist, dass du auf die richtige Reihenfolge achtest.

PS: kleiner Tipp
besonders am Anfang deiner Java Karriere kann es nützlich sein bei if/else die Klammern zu setzen:

public void auszahlen (int betrag) {
        if (kontostand - betrag >= dispo) {
            kontostand = kontostand - betrag;
        }
        else {
            System.out.println("Nicht genug Geld");
        }
}

Das sorgt für mehr Übersicht.
Zwingend notwendig ist das aber erst bei mehreren Anweisungen nach einem if oder else.

Also erstmal danke für die schnelle Antwort:)
Jedoch gibt es noch ein Problem an der Sache. Ich würde gerne kontostand und nicht betrag ausgeben, dieser befindet sich jedoch in der Klasse konto und nicht wie die Strings in der main-Methode.
Wie bekomme ich jetzt also kontostand rausgeholt?
Ist return vielleicht eine Lösung?

Nochmal zwei weitere Tipps:

  1. Klasseneigenschaften:
    int dispo = -1000;```

Sollten immer private sein. Du musst den Zugriff darauf beschränken. Nur in besonderen Fällen sollten diese public sein. Aber dann sollte es ebenfalls dran stehen.
Hier weiteres: [Zugriffsmodifikatoren](http://www.informatikzentrale.de/zugriffsmodifikatoren-public-private-protected.html)

2. toString
Du musst die toString()-Methode nicht unbedingt überschreiben. Dies benötigst du nur, wenn du das Objekt später als String ausgeben möchtest.
Hast du die Methode mit absicht überschrieben?

Grüße Swoop

EDIT: 
Um den Kontostand auszugeben, musst du einen getter für deine Eigenschaft kontostand machen.
```public int getKontostand(){
  return kontostand;
}```

Die Methode kommt in die Klasse Konto. Danach kannst du in der Main auf den kontostand zugreifen mittels:
```konto.getKontostand()```

ich glaube du denkts zu kompliziert;)

meinst du vielleicht das?

public class Kontotest {
 
    public static void main(String[] args) {
       
        private String kontoinhaber = "Max Mustermann ";
        private String kontonummer = "1234567890";
       
        int betrag = 0;
       
        Konto maxkonto = new Konto();
        //maxkonto.auszahlen(betrag);
        maxkonto.info(kontoinhaber, kontonummer);
    }
}   
    class  Konto{
       
        private int kontostand = 10000;
        private int dispo = -1000;
            
        public void einzahlen (int betrag) {
            kontostand = kontostand + betrag ;
        }
           
        public void auszahlen (int betrag) {
            if (kontostand - betrag >= dispo){
                kontostand = kontostand - betrag;
            }
            else {
                System.out.println("Nicht genug Geld");
            }
        }
       
        public void info(String kontoinhaber, String kontonummer){
            System.out.println(kontoinhaber);                      
            System.out.println(kontonummer);                           
            System.out.println("Kontostand: " + kontostand + " Euro");     
        }
           
        public int getKontostand() {
            return kontostand;
        }
    }

du brauchst den Kontostand nicht zu übergeben, da er ja schon in der Klasse Konto bekannt ist.

Danke euch beiden :slight_smile:
Das mit dem getter muss ich mir auf jeden Fall merken und @Klemensy, ja, genau das war es was ich wollte:)
Ich denk wohl wirklich manchmal zu kompliziert. Das kommt wohl dabei rum wenn man seit 5 Tagen 6 Stunden am Tag nur über irgendwelchen Büchern und Codes hängt :smiley:

[QUOTE=Timme]Danke euch beiden :slight_smile:
Das kommt wohl dabei rum wenn man seit 5 Tagen 6 Stunden am Tag nur über irgendwelchen Büchern und Codes hängt :D[/QUOTE]

Och da gibts schlimmere die machen das seit Jahren 5 Tage die Woche/8 Stunden am Tag und abends ab und zu noch daheim :o)

Das ist dann natürlich ein ganz anderes Kaliber :smiley:
Ich nehm mal an das Thema kann geschlossen werden oder?

klick einfach unten neben dem Antworten Button auf “Thema als erledigt markieren”

Edit: ich darf das auch in fremdem Beiträgen???