Methoden Methode in anderer Methode aufrufen

Potrick

Mitglied
Hallo,

ich hänge hier an einer Aufgabe.
Und zwar weiß ich beim besten willen nicht, wie ich die Methode istQuadratisch in der Methode vertauscheWerte aufrufe.

Hier die Fehler im Terminal:
4 errors
macbookpro:Java Fabi$ javac Rechteck3.java
Rechteck3.java:27: error: '.class' expected
boolean ergebnis = istQuadratisch(int Breite, int Laenge);
^
Rechteck3.java:27: error: <identifier> expected
boolean ergebnis = istQuadratisch(int Breite, int Laenge);
^
Rechteck3.java:27: error: not a statement
boolean ergebnis = istQuadratisch(int Breite, int Laenge);
^
Rechteck3.java:27: error: ';' expected
boolean ergebnis = istQuadratisch(int Breite, int Laenge);

Kann mir jemand die allgemein Syntax hierfür verrate, oder auch sagen, was ich falsch mache?

Java:
public class Rechteck3{
	public static void main(String[] args){
		int Breite;
		int Laenge;
	}//Main
	
	public int berechneUmfang(int Breite, int Laenge){
		return 2*Breite+2*Laenge;
	}//Methode: Umfang
	
	public int berechneFlaeche(int Breite, int Laenge){
		return Breite*Laenge;
	}//Methode: Flaeche
	
	public boolean istQuadratisch(int Breite, int Laenge){
		if(Breite==Laenge){
		boolean quadratisch = true;
		return quadratisch;
		}//if
		else{
		boolean unquadratisch = false;
		return unquadratisch;
		}//else
	}//Methode: Quadratisch

	public int vertauscheWerte(int Breite, int Laenge){
		boolean ergebnis = istQuadratisch(int Breite, int Laenge);
		int temp;
		if(ergebnis==false){
			Laenge=temp;
			Breite=Laenge;
			temp=Breite;
			return Breite;
		}
		else{
			String quadratisch = "Das Recheck ist quadratisch";
			return quadratisch;
		}//if
		
	}//vertauschen
}//public class

Grüße und Danke im vorraus,

euer Potrick
 
Hi,
Versuch es mal so:
Java:
public boolean istQuadratisch(int Breite, int Laenge){
	if(Breite == Laenge){
		return true;
	}
	else{
		return false;
	}
}
und ... zum Tauschen von Werten geht das so:
Java:
temp = Laenge;
Laenge = Breite;
Breite = temp;
Bei deiner Variante
Java:
Laenge=temp;
Breite=Laenge;
temp=Breite;
ist am Schluss Breite = 0, Laenge = 0... das ist sicher nicht das, was du möchtest..
und noch
Java:
boolean ergebnis = istQuadratisch(Breite, Laenge);
nicht
Java:
boolean ergebnis = istQuadratisch(int Breite, int Laenge);
 
Zuletzt bearbeitet:
Erstens sind deine Variablen lokal in der main Methode. Da bringen sie dir nichts.
Dann Variablen immer klein und nach dem UpperCamelCase.
Des Weiteren kannst du direkt Werte zurückgeben.
Java:
boolean quadratisch = true;
return quadratisch;

wird damit zu
Java:
return true;

Dann versuchst du in der letzten Methode vom Typ int einen String zurückzugeben. Das da dein Terminal nicht meckert, wundert mich.

Und zum eigentlichen Problem: Im Methodenaufruf von
Code:
istQuaratisch(int,int)
deklarierst du zwei neue Variablen. das geht so nicht. Lass die beiden ints weg und es müsste funktionieren.



[TIPP]Das du wegen der Fehler hier fragen musst, zeigt, dass die Basics zu Java noch fehlen. Bitte organisier dir ein gutes Buch (dafür gibt es genug Threads hier im Forum), lade dir Java in 21 Tagen runter, sieh dir YouTube Videos an usw. 😉[/TIPP]
 
[EDIT]Hoppsala, da war einer schneller 😀[/EDIT]
die zeile
Java:
boolean ergebnis = istQuadratisch(int Breite, int Laenge);
kann so nicht funktionieren. du willst ja nur die Variablen angeben,
Java:
boolean ergebnis = istQuadratisch(Breite, Laenge);
wäre richtig.

problematisch wird es auch hier:
Java:
 public int vertauscheWerte(int Breite, int Laenge){
        boolean ergebnis = istQuadratisch(int Breite, int Laenge);
        int temp;
        if(ergebnis==false){
            Laenge=temp;
            Breite=Laenge;
            temp=Breite;
            return Breite;
        }
        else{
            String quadratisch = "Das Recheck ist quadratisch";
            return quadratisch;
        }//if
       
    }//vertauschen
im else block würdest du den String "Das Recheck ist quadratisch" zurückgeben, die methode muss aber einen int wert zurückgeben.
Die logist ist auch falsch gedacht. du willst die werte vertauschen, ay? das tust du auch innerhalb der methode, wird die Methode jedoch am ende verlassen "verschwinden" auch die Variablen. dh. du änderst nicht die ursprünglichen werte.

dein Code hat aber noch andere Probleme. die Methoden sind allesamt nicht statisch, du benötigst ein Object dieser Klasse. um dieses zu erzeugen brauchst du einen Konstruktor.

mein Tipp: befasse dich nochmal mit den grundlagen der OOP. auch die Bennenung von Variablen ist verbesserbar(
  • Variablennamen: lowerCamelCase
  • methodennamen: lowerCamelCase
  • Klassennamen: UpperCamelCase
  • (statische variablen) UpperCase, mit "_" als trennzeichen
)
LG Chloroplast
 
Zuletzt bearbeitet:
mal als Klasse mit Sinn (kannst du dir mal angucken und dich fragen, warum dort dort steht und wieso)

Java:
    public class Rechteck3{
   int breite;
   int laenge;

        public static void main(String[] args){
            new Rechteck3(20, 10);//breite, länge
        }//Main
        public Rechteck3(int breite, int laenge){//Konstruktor
            this.breite = breite;
            this.laenge = laenge;
        }
        public int berechneUmfang(){
            return 2*breite+2*laenge;
        }//Methode: Umfang
       
        public int berechneFlaeche(){
            return breite*laenge;
        }//Methode: Flaeche
       
        public boolean istQuadratisch(){
            return (breite==laenge);
        }//Methode: Quadratisch
     
        public void vertauscheWerte(){
            if(!istQuadratisch()){//wenn nicht quadratisch wird was gemacht, ansonsten nicht
                int temp = breite;
                breite = laenge;
                laenge = temp;
            }           
        }//vertauschen
    }//public class
 

Zurück
Oben