Announcement

Collapse
No announcement yet.

Hilfe für Intermediate Programmer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe für Intermediate Programmer

    Hi<br>

    Ich beschäftige mich zwar seit 0.5 Jahren mit Java, leider sind jetzt einige Porbleme aufgetaucht:<br>
    Bis jetzt habe ich immer nur im Texteditor den Code verfasst, wenn ich jetzt z.b eine Klasse ourclass schreibe, compiliere und dann eine 2.klasse schreibe und in dieser neuen das myclass Objekt anspreche,(ich habe aber kein package gemacht), und compiliere gibt es keinen Fehler, wenn ich das programm aber interpretiere gibt es einen Fehler,
    Hier der Code:<br>

    public class ourclass extends Thread {<br>
    public void run () {<br>
    for (int i=0; i < 100; i++) {<br>
    System.out.println("Hello");<br>
    }<br>
    }<br>
    }<br>

    Wenn ich das ourclass object jetzt in einer anderen klasse mit: <br>
    ourclass oc = new ourclass<br>
    oc.start <br>
    anspreche, so funktioniert dies nicht.
    Kann mir jemand einen Rat geben?

  • #2
    Hallo Othmar

    ich erkenne hier nur einen Fehler:
    ourclass oc = new ourclass //falsch
    oc.start//falsch
    ourclass oc = new ourclass();//richtig
    oc.start();//richtig

    Aber das moniert der Compiler sowieso.

    Ausserdem müssen per Konvention Klassennamen gross geschrieben werden.
    Eine genauere Beschreibung des Fehlers wäre nicht schlecht.

    Thoma

    Comment


    • #3
      Hallo Thomas!<br><br>
      Den Code habe ich aus dem O´Reilly Buch Java Threads.<br>
      Was mich eigentlich verwirrt hat war folgendes:<br>
      Wenn ich jetzt eine Klasse OurClass schreibe, copiliere und sagen wir mal alles läuft ohne Fehler.<br>
      Ich schreibe jetzt eine neue Klasse, und will dort das OurClass Objekt verwenden.<br>
      Muss ich dann nicht ein package erstellen oder die Klasse OurClass importieren?<br>
      Woher weiß der Compiler sonst, was in dem OurClass Objekt eigentlich drinnen steht?

      Gruß Othma

      Comment


      • #4
        Und hier ist der genaue Code:<br>
        public class OurClass extends Thread {<br>
        public void run() {<br>
        for (int I = 0, I < 100, I++) {<br>
        Syste,.out.println("Hello");<br>
        }<br>
        }<br>
        }<br>
        Das ist die erste Klasse, wenn ich sie compiliere, gibt es keine Fehlermeldung, wenn ich aber den Interpreter aufrufe, dann gibt es folgende Fehlermeldung:Exception in thread "main" java.lang.NoSuchMethodError: main<br>

        Das ist der erste Fehler, und in Bezug auf die Frage mit dem package oben:<br>
        In dieser Klasse wird jetzt das OurClass Objekt verwendet:<br>
        import java.applet.Applet;<br>
        public class OurApplet extends Applet {<br>
        public void init() {<br>
        OurClass oc = new OurClass();<br>
        <b>oc.start();</b><br>
        }<br>
        }<br>
        und wie sollte der Compiler wissen wlche Methoden das oc Objekt enthält, wenn es nicht in einem package mit <b>OurApplet</b> ist?<br>

        Danke im Voraus<br>
        Othma

        Comment


        • #5
          Die Exception sagt eigentlich eh schon alles: Keine Methode namens main gefunden. Diese Methode benötigt der Interpreter als Einsprungpunkt. Dort drinnen finden dann alle weiteren Initialisierungen statt.

          Packagestrukturen finden sich auf der Festplatte als Dateistrukturen wieder. Das heisst wenn du alle deine *.class Dateien im gleichen Ordner hast und kein package Statement geschrieben hast, dann ist dieses Verzeichnis sozusagen das Default Package.

          Obiges ist Basiswissen. Lege das Thread Buch mal ein paar Wochen zur Seite und erarbeite dir dieses Wissen. Es gibt zig Bücher darüber
          auch online zum Downloaden Stichwort GoTo Java 2.

          In diesen Büchern werden deine Fragen mit Sicherheit beantwortet.

          Thoma

          Comment


          • #6
            Hi<br>
            Danke für Deine Hilfe, denkst Du, dass auch Thinking in Java und das Sun Java Tutorial nützlich sind?<br>

            Othma

            Comment


            • #7
              Hallo Othmar,

              beides ist OK. Ausserdem gibts eine Menge Tutorials in der sun Developer Connection. Du musst allerdings Mitglied werden (Passwort und
              email Adresse erforderlich - keine Werbung). Darüberhinaus kannst du dich dort über Neuigkeiten informieren lassen - per email. Die Tutorials sind von jGuru. Einfach mal anschauen.

              Abschliessend noch ein Link:

              http://www.java-tutor.com/javabuch/index.htm

              Thoma

              Comment

              Working...
              X