the method * is not undefined for the type *

Status
Nicht offen für weitere Antworten.

assault

Aktives Mitglied
Hi ich mal wieder ^^
ich hab mal wieder ein Prob und zwar hab ich 2 Klassen erstellt und

Code:
public class planung {
	public static void main (String[]args){
		int Buchen;
		int Tage;
		String Name;
		int urlaubvorjahr = IO.promptAndReadInt("Bitte Resturlaub eingeben");
		
		urlaubskonto A = new urlaubskonto(urlaubvorjahr);
		
		while(getResturlaub() > 0){
			
			Buchen = IO.promptAndReadInt("\n\nWollen sie buchen?\n 1 - Ja \n2 2- Nein\nWert:");
			
			if( Buchen == 1 ){
				
				Tage =  IO.promptAndReadInt("Bitte Anzahl der zu buchenden Tage eingeben: ");	
				Name = IO.promptAndReadString("Bitte Namen des Vertreters eingeben: ");
				buchen(Tage,Name);
				
				System.out.println(getVertreter() + getResturlaub());
			
			}
			else if (Buchen == 1){
			System.out.println("Buchen wird beendet!"); continue;
			
			
			}			
			else {System.out.println("\nFalsche Eingabe");break;}	
		}
	}
}


und


Code:
public class urlaubskonto {
	private int restUrlaub;
	private static final int Anspruch = 30;
	private String vertreter = "N.N.";
	private boolean genehmigt = false;
	
	
	
	public urlaubskonto (int vorjahr){
		
		restUrlaub = Anspruch+vorjahr;
	}
	
	public boolean buchen(int tage, String stv){
		if(tage <= restUrlaub)
			{restUrlaub = restUrlaub - tage;genehmigt = true;}
		else 
			{genehmigt =  false;}
		setVertreter(stv);
		return genehmigt;
	}

	private void setVertreter(String v){
		if(genehmigt = true)
			{vertreter = "v";}
		else 
			{vertreter = "N.N.";}	
	}

	public String getVertreter(){
		return vertreter;
		}

	public int getResturlaub()
	{
		return restUrlaub;
	}
	
}

Wieso bekomm ich nun diese Fehlermeldung und woran liegts, dass er scheinbar die Methoden der 2. Klasse nicht erkennt?
 
S

SlaterB

Gast
welche Fehlermeldung, ich sehe keine

> if(genehmigt = true)

->

if(genehmigt == true)

oder besser

if(genehmigt)
 

assault

Aktives Mitglied
SlaterB hat gesagt.:
welche Fehlermeldung, ich sehe keine

> if(genehmigt = true)

->

if(genehmigt == true)

oder besser

if(genehmigt)

nein, er soll schon true und false übergeben die fehlermeldung ist in der Klasse "planung", dort bekomm ich die meldung

Edit:Sorry in der Zeile verutscht hast recht nicht "=" sonder "==" aber das Prob ist damit immer noch nicht beseitigt
 
S

SlaterB

Gast
mit
if(genehmigt = true)
weißt du der Variablen genehmigt den Wert true zu und das if ist immer true, so ein Code macht keinen Sinn,
glaube es mir ;)


---------

die Fehlermeldung hast du immer noch nicht genannt
 

assault

Aktives Mitglied
jo hast recht bin in der Zeile Verutscht ^^ -> hatte nicht die bedingung sonder die zuweisung gelesen,...

aber das Prob ist immer noch da, er kann aus der ersten Klasse raus, nicht auf eine der Methoden der 2. Klasee zugreifen, ich tippe einfach mal, dass ich was falsch gemacht habe beim aufruf
 
S

SlaterB

Gast
ich tippe mal, dass du nun, nachdem ich zum 3. Mal nachfrage, endlich konkret wirst,
um welche Operation es geht, von wo im Hauptprogramm aus der Aufruf erfolgt,
wie die Fehlermeldung lautet usw. usf.
 

assault

Aktives Mitglied
Ok wusste jetzt nicht, dass ich mein Problem nicht verständlich genug erklärt habe .


folgendes,

in der ersten klasse (planung) in dem part
Code:
while(getResturlaub() > 0){
bekomme ich die Fehlermeldung

Code:
The method getResturlaub() is undefined for the type planung

das gleiche ist auch bei

Code:
buchen(Tage,Name);
und

Code:
System.out.println(getVertreter() + getResturlaub());


wobei ich mir eigentlich sicher bin das ich den part, trotz der Fehlermeldung,
Code:
buchen(Tage,Name);
richtig habe, zumindest wüsste ich nicht was daran falsch sein soll. bin mir aber bei den anderen nicht sicher ob ich da nicht noch iergendwie deren Werte an eine Variable übergeben muss...
 
S

SlaterB

Gast
getResturlaub() ist eine Operation der Klasse urlaubskonto,

du rufst sie aber innerhalb von planung auf, in planung ist diese Operation nicht bekannt,

denkbar wäre
urlaubskonto u = ..;
u.getResturlaub();

oder
A.getResturlaub()

bei deiner Variablen A


--------


Klassen groß schreiben!
Variablen klein schreiben!
 

assault

Aktives Mitglied
SlaterB hat gesagt.:
getResturlaub() ist eine Operation der Klasse urlaubskonto,

du rufst sie aber innerhalb von planung auf, in planung ist diese Operation nicht bekannt,

denkbar wäre
urlaubskonto u = ..;
u.getResturlaub();

oder
A.getResturlaub()

bei deiner Variablen A


--------


Klassen groß schreiben!
Variablen klein schreiben!


achso dann muss ich die methode einfach nur über A.methode ansprechen ... ok danke
hatte schon versucht über urlaubskonto.methode aufzurufen ich hatte vergessen das ich das object ansprechen muss ^^ thx hast mir damit sehr geholfen
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben