Announcement

Collapse
No announcement yet.

ausgelagerte Methode aufrufen

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

  • ausgelagerte Methode aufrufen

    Hallo Leute,

    ich bin noch ein blutiger Anfänger mit Java, steh aber grade irgendwie auf dem Schlauch und mir will nicht in den Sinn kommen, warum er immerwieder eine Fehlermeldung - " ( expected", "illegal start of expression" - bei Aufruf der ausgelagerten Methode bringt.

    Folgendes liegt vor : Ich will 2 Bücher von einer Bibliothek aufnehmen lassen .

    Die packages die von meiner HAuptApplikation importiert sind ,sind zu 100% korrekt (da vom Lehrer gegeben):

    Code:
    import java.lang.*;
    import Bibliothek.*;
    import Buch.*;
    
    public class HalloBibliothek
    {
    	public static void main(String[] args)
    	{
    	    Bibliothek bibo = new Bibliothek();
    	    String titel = new String();
    	    Buch buch1 = new Buch("Das Haus am See");
    	    Buch buch2 = new Buch("Der See am Haus");
    	    
    	    bibo.aufnehmen(Buch buch1); // hier kommt fehlernachricht
    	  
    	}
    }

    Dies ist der Quellcode für das "Bibliothek" Package

    Code:
    package Bibliothek;
    
    import Buch.*;
    
    public class Bibliothek {
    
       private Buch [] meineBuecher;
    
       private int anzahl;
    
       public Bibliothek() {
           meineBuecher = new Buch[10]; //MeineBuecher wird hier als Objekt festgelegt das eine Buchliste von 10 Zeilen besitzt
           anzahl = 0;
           System.out.println("Hallo, ich bin eine Bibliothek,"
                   + "die 10 Buecher aufnehmen kann!");
           }
    
           public void aufnehmen(Buch buch) {
               meineBuecher[anzahl] = buch;
               anzahl += 1;
               System.out.println("Ich habe das Buch " + buch + " aufgenommen!");
        }
    }
    und dies is der Quellcode von Package "Buch" (wie gesagt, Buch un Bibliothek sind zu 100% korrekt

    Code:
    package Buch;
    
    public class Buch {
    
        private String titel;
    
        public Buch(String titel) {
            this.titel = titel;
        }
    
        public String toString() {
            return titel;
        }
    }

    Ich verstehe einfach nicht , wieso die Funktion "aufnehmen" nichts mit dem Objekt "buch1" anfangen kann , obwohl dies doch genau dem Parameter entspricht , der bei "aufnehmen (xx xx) verlangt wird...

    Danke für eure Hilfe.

  • #2
    bibo.aufnehmen(Buch buch1);

    Wird nicht nochmal mit der "Beschreibung" des Objektes/der Methode aufgerufen, sondern direkt mit dem gewünschten Objekt

    bibo.aufnehmen(buch1);

    Die Methode ist mit

    public void aufnehmen(Buch buch)

    deklariert
    public
    keinen Rückgabewert
    erwartet ein Objket vom Typ Buch

    Aufruf

    ...aufnehmen(instanz);

    ohne Angabe der Klasse

    EDIT

    Es ist auch keine ausgelagerte Methode, sondern einfach eine Methode der Klasse Bibliothek
    Zuletzt editiert von Christian Marquardt; 04.11.2009, 19:17.
    Christian

    Comment


    • #3
      oh mann, naklar, wieso hab ich das denn nicht gerafft?!??! ich könnt mir eine Backpfeiffe geben,.. danke für die Antwort. Gruß

      Comment

      Working...
      X