Compiler-Fehler Cannot find Symbol

Armadillo

Mitglied
Hier mein Programm:

Ich versuche einen einfachen Text zeigen zu lassen, wenn b größer ist als a, nur immer kommt, dass ein sich ein Fehler in System.out.printIn verbirgt und irgendwelche Symbole fehlen?
Könnte mich jemand aufklären?

Java:
public class CIfaufgabe {

  public static void main(String []args) { 
    int a = 1;
    int b = 2;
}      
      public void Ifaufgabe(int a, int b) {
        this.a = 1;
        this.b = 2;
}

      public void Rechnung(int a, int b, int c) {

      if( a < b)
        System.out.printLn("A ist kleiner als B");
    }
}


Die Fehlermeldung beim Compilen:

Java:
CIfaufgabe.java:17: cannot find symbol
symbol  : method printLn(java.lang.String)
location : class java.io.PrintStream
           System.out.printLn("A ist kleiner als B");

4 errors
 
Methodennamen schreibt man klein, aber das nur am Rande. Der Code sieht auch
sonst merkwürdig aus. "Ifaufgabe" sieht mehr wie ein Konstruktor aus. Und a und
b sollte auch Instanzvariablen sein.
 
Methodennamen schreibt man klein, aber das nur am Rande. Der Code sieht auch
sonst merkwürdig aus. "Ifaufgabe" sieht mehr wie ein Konstruktor aus. Und a und
b sollte auch Instanzvariablen sein.

Ja das sollte ein Konstruktor sein.
Ich hab das nochmal probiert diesmal etwas verdeutlicht

Java:
class CAufgabe {
  int m_erstezahl;
  int m_zweitezahl;
  
// Konstruktor
    CAufgabe(int erste, int zweite) {
      m_erstezahl = erste;
      m_zweitezahl = zweite;
}
// Vergleich

   void vergleich(int erste, int zweite) {
      if( erste < zweite ) {
        System.out.println("Die erste Zahl ist groeser als die zweite");
      }else{
        System.out.println("Die zweite Zahl ist groeser als die erste");

  }
}
//main Klasse
public class CIfaufgabe {
  public static void main(string[] args)  {

// 2 neue Aufgaben
  CAufgabe aufgabe = new CAufgabe("2","1");
  CAufgabe aufgabee = new CAufgabe ("2","3");
  }
 }
}

Java:
CIfaufgabe.java:22: cannot find symbol
symbol  : class string
location: class CAufgabe.CIfaufgabe
  public static void main(string[] args)  {
                          ^
CIfaufgabe.java:25: cannot find symbol
symbol  : constructor CAufgabe(java.lang.String,java.lang.String)
location: class CAufgabe
  CAufgabe aufgabe = new CAufgabe("2","1");
                     ^
CIfaufgabe.java:26: cannot find symbol
symbol  : constructor CAufgabe(java.lang.String,java.lang.String)
location: class CAufgabe
  CAufgabe aufgabee = new CAufgabe ("2","3");
                      ^
CIfaufgabe.java:22: inner classes cannot have static declarations
  public static void main(string[] args)  {
                     ^
4 errors
 
Dein Konstruktor erwartet int-Werte, aber du übergibst Strings.

So sollte es dann gehen:
Java:
// 2 neue Aufgaben
  CAufgabe aufgabe = new CAufgabe(2,1);
  CAufgabe aufgabee = new CAufgabe (2,3);

EDIT:

Noch etwas: Es heißt
Code:
String
und nicht
Code:
string
. Also:
Java:
public static void main(String[] args)  {

Du musst echt auf richtige Groß-/Kleinschreibung achten.
 
Zuletzt bearbeitet:
Davon abgesehen achte auf bessere Formation. Man erkennt z. B. kaum wo die Main definiert ist, auf dem ersten Blick nicht mal dass eine 2. enclosed Class drinnen steht. Außerdem denk besser über bessere Variablennamen nach. Da fängt man an zu rätseln für was das "m" steht. Davon abgesehen verwendet man Underlines nur in Konstanten. Die if ist unvollständig, wenn erste 4 und zweite 4 ist, ist die Ausgabe "Die zweite Zahl ist groeser als die erste".
Außerdem greifst du auf die beiden Klassenvariablen nie lesend zu.

Du könntest auch den trinären Operator verwenden:

Java:
void vergleich(int erste, int zweite) {
	System.out.println(erste < zweite ? "Die erste Zahl ist groeser als die zweite" : "Die zweite Zahl ist groeser als die erste");
}
 
Zuletzt bearbeitet:
Und wieso hat vergleiche() wieder zwei Parameter? Braucht es doch gar nicht, kannst ja die Klassenmember verwenden, sonst bringt sich die Initialisierung nichts. und vergleiche solltest du in der main dann auch aufrufen
 

Zurück
Oben