# the method * is not undefined for the type *



## assault (9. Apr 2008)

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


```
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 



```
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?


----------



## SlaterB (9. Apr 2008)

welche Fehlermeldung, ich sehe keine

> if(genehmigt = true) 

-> 

if(genehmigt == true) 

oder besser

if(genehmigt)


----------



## assault (9. Apr 2008)

SlaterB hat gesagt.:
			
		

> welche Fehlermeldung, ich sehe keine
> 
> > if(genehmigt = true)
> 
> ...



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


----------



## SlaterB (9. Apr 2008)

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 (9. Apr 2008)

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


----------



## SlaterB (9. Apr 2008)

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 (9. Apr 2008)

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


folgendes,

in der ersten klasse (planung) in dem part

```
while(getResturlaub() > 0){
```
bekomme ich die Fehlermeldung 


```
The method getResturlaub() is undefined for the type planung
```

das gleiche ist auch bei 


```
buchen(Tage,Name);
```
und


```
System.out.println(getVertreter() + getResturlaub());
```


wobei ich mir eigentlich sicher bin das ich den part, trotz der Fehlermeldung, 

```
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...


----------



## SlaterB (9. Apr 2008)

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 (9. Apr 2008)

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,
> 
> ...




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


----------

