Quelltext mit Fehlern

Status
Nicht offen für weitere Antworten.

Sonyk

Mitglied
Huhu 😀

Ich muss für die Schule Java lernen, da wir das jedoch dort nur theoretisch machen hab ich mich mal daheim
drangesetzt und ein wenig rumprobiert und das ist dabei herausgekommen:

Kann mir wer sagen was an diesem (wirklich sehr einfachen) Quelltext falsch ist?

Code:
class Abschluss {
	string wort1="Die";
	string wort2="Lektion";
	string wort3="ist";
	string wort4="um";
}

class Ausgabe {
public static void main(String args[]) {
	Abschluss.satz1 = new Abschluss();
	Abschluss.satz2 = new Abschluss();
	Abschluss.satz3 = new Abschluss();
	Abschluss.satz4 = new Abschluss();
	
	System.out.println(""+satz1.wort1);
	System.out.println(""+satz1.wort2);
	System.out.println(""+satz1.wort3);
	System.out.println(""+satz1.wort4);
}
}

Danke im Vorraus.
Gruß,
Sonyk
 
mach mal 'public class Ausgabe' und nenne die Datei Ausgabe.java
 
Hi,

du hast z.B. "string" statt "String" geschrieben, ansonsten siehe geänderten Code unten:

Code:
public class Abschluss { 
	   String wort1="Die"; 
	   String wort2="Lektion"; 
	   String wort3="ist"; 
	   String wort4="um"; 
	} 

	class Ausgabe { 
	public static void main(String args[]) { 
	   Abschluss satz1 = new Abschluss(); 
	   Abschluss satz2 = new Abschluss(); 
	   Abschluss satz3 = new Abschluss(); 
	   Abschluss satz4 = new Abschluss(); 
	    
	   System.out.println(""+satz1.wort1); 
	   System.out.println(""+satz1.wort2); 
	   System.out.println(""+satz1.wort3); 
	   System.out.println(""+satz1.wort4); 
	} 
	}

Viel Erfolg beim weiteren Java-Lernen!
 
Die Klasse Abschluss darf nicht public sein. So macht es mehr Sinn:
Code:
class Abschluss {
      String wort1="Die";
      String wort2="Lektion";
      String wort3="ist";
      String wort4="um";
   }

  public class Ausgabe {
   public static void main(String args[]) {
      Abschluss satz1 = new Abschluss();
      Abschluss satz2 = new Abschluss();
      Abschluss satz3 = new Abschluss();
      Abschluss satz4 = new Abschluss();
      
      System.out.println(""+satz1.wort1);
      System.out.println(""+satz1.wort2);
      System.out.println(""+satz1.wort3);
      System.out.println(""+satz1.wort4);
   }
   }
 
Danke schonmal für die Antworten,

das heißt also, soweit ich es bis hier verstanden habe,
es muss immer mindestens 1 Klasse public sein oder?
 
nur die klasse wo die main methode drin is muss public sein. ansonsten ist das ziemlich egal, solange du keine packages benutzt.
 
Huhu neue Frage :wink:

Hier ein kleiner Quelltext:
Code:
/**
* @version 0.2		30 Sep 2004
* @author Stefan
*/

import java.awt.*;
import java.awt.event.*;

class Berechnung {
	public void kmethode(double b, double c){
		double ergebnis1, ergebnis2;
		ergebnis1 = (b*-1)/2;
		ergebnis2 = c-((b/2)*(b/2));
	}
}

public class Scheitelform extends Frame {
	public Scheitelform(){
		setSize(500,200);
		addWindowListener(new WindowAdapter() {
			public void windowClosing (WindowEvent e){
				System.exit(0); }
		});
	}
	
	public void paint (Graphics g){
		
		g.drawString("Yes ", 100, 50);
	}
	
	public static void main(String args[]){
		Berechnung.kmethode(4,1);
		new Scheitelform().show();
	}
}

Wie schaffe ich es, dass ich kmethode(double b, double c) 2 Werte übergeben kann, die dann mit
g.drawString in der Paintmethode der 2. Klasse ausgegeben werden?

Gruß und Danke im Vorraus,
Sonyk
 
Code:
import java.awt.*;
import java.awt.event.*;

class Berechnung {
   static double ergebnis1;
   static double ergebnis2;

   public void kmethode(double b, double c){
      ergebnis1 = (b*-1)/2;
      ergebnis2 = c-((b/2)*(b/2));
   }
}

public class Scheitelform extends Frame {
   public Scheitelform(){
      setSize(500,200);
      addWindowListener(new WindowAdapter() {
         public void windowClosing (WindowEvent e){
            System.exit(0); }
      });
   }
   
   public void paint (Graphics g){
      String ergebnis1 = Integer.toString(Berechnung.ergebnis1);
      String ergebnis2 = Integer.toString(Berechnung.ergebnis2);
      g.drawString(ergebnis1+"\n"+ergebnis2, 100, 50);
   }
   
   public static void main(String args[]){
      Berechnung.kmethode(4,1);
      new Scheitelform().show();
   }
}
 
Sowas in der Art hatte ich auch schon ausprobiert, jedoch ist
static double nicht erlaubt, da kommt immer eine Fehlermeldung
:/
 
Reality hat gesagt.:
static double ergebnis1;
static double ergebnis2;

böösseeee :bae: :autsch:

mach die attribute nich statisch und erzeuge eine instanz von berechnung, oder mach die methode auch statisch... letzteres wär vielleicht sin diesme fall sinnvoller (logischer)
 
Edit: Da ich den Fehler bei dem alten Program nicht finden konnte, habe ich alles kurzerhand umgebaut
und eine neue Klasse hinzugefügt, die die Ergebnise auslesen soll, die berechnung() liefert.
Allerdings kommt nun wieder eine andere Fehlermeldung ich verzweifle hier noch :roll:

Code:
/**
* @version 0.2		30 Sep 2004
* @author Stefan Becker
*/

import java.awt.*;
import java.awt.event.*;

public class Scheitelform extends Frame {
	public Scheitelform(){
		setSize(500,200);
		addWindowListener(new WindowAdapter() {
			public void windowClosing (WindowEvent e){
				System.exit(0); }
		});
	}
	
	public void paint (Graphics g){
		g.drawString(""+getNumbers.n1 , 100, 50); 
	}		
	
	public void Berechnung(double b, double c){
		double e1 = (b*-1)/2; 
		double e2 = c-((b/2)*(b/2));
		
	}
	
	public static void main(String args[]){	
		new Scheitelform().show();
	}
}

class getNumbers {
	Scheitelform.Berechnung(2.0,3.0)
	static double n1 = e1;
	static double n2 = e2;
}

Der Fehler lautet: <identifier> expected Scheitelform.Berechnung(2.0,3.0)
^

Weiterer Edit: Das Problem hat sich geklärt <juuuhu> :toll: Danke Euch 8)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben