Interface



  • Hi, Ich sitze hier grade vor einer ziehmlich schwierigen Interface Aufgabe:

    Implementieren Sie folgendes Interface in der Klasse BagImp1. Sie dürfen in der Implementierung keine von Java zur Verfügung gestellte ContainerKlassen (auch nicht Vector) benutzen ausser ein Array. Sie können eine fixe Kapazität annehmen. Implementieren Sie auch mindestens einen sinnvollen "Nicht-Default" Konstructor.

    interface Bag
    {
    public boolean add ( Object obj );
    public boolean contains ( Object obj );
    public String toString ( );
    public boolean remove ( Object obj );
    public int size ( );
    public boolean isEmpty ( );
    }

    Kann mir jemand helfen die Aufgabe zu lösen. Ich komme damit einfach nicht zurecht. Bitte um Hilfe !!!!!!

    Danke
    Weichei

    PS Falls es jemanden interessiert. Die Übung, ist eine der Übungsaufgaben, des "Hausaufgaben"-Blattes Nr 9 der GdI-Vorlesung der TU-Darmstadt.


  • Mod

    Du sollst dir da wohl selbst einen geeigneten Container programmieren. Wähle einen aus und wenn du nicht weiterkommst, dann sag, wo du genau nicht weiterkommst. Ich schlage einfach mal eine Liste vor.

    Steht GdI für "Grundlagen der Informatik"? 😕 ...fänd ich eigentlich komisch!

    [ Dieser Beitrag wurde am 13.01.2003 um 14:53 Uhr von Gregor editiert. ]



  • Ich würde auch vorschlagen, dass Du dich für eine Art von Implementation entscheidest und mal loslegst. An entsprechender Stelle kannst Du dann hier sicherlich hilfe bekommen 🙂

    Eine Liste zu nehmen ist sinnvoll.



  • Danke für Eure Antworten.
    Ja, GdI steht für Grundlagen der Informatik aber wieso ist das KOMISCH ?!?!?!?

    Mir ist schon klar das ich mit einem Array arbeiten muss. Das meint ihr doch mit Liste oder ???
    Aber ich hab keine Ahnung wie ich da ran gehen soll.
    Das ist die erste Aufgabe dich ich zum Thema Interfaces machen soll. Von daher habe ich noch nichtmal ne grosse Ahnung wie ich das Implementieren soll.

    Hier ist das bisherige erbärmliche Ergebniss von mir. Nichts weiter als das Grundgerüst.

    package java.util;
    
    interface Bag
    {
        public boolean add ( Object obj );
        public boolean contains ( Object obj );
        public String toString();
        public boolean remove ( Object obj );
        public int size ();
        public boolean isEmpty ();
    }
    
    class BagImp1 implements Bag
    {
          char[] speicher = new char[40];
    
        boolean add (Object obj) 
        {
              for (int i;i<40;i++)
              { 
                 speicher[i]=obj[i];
              }
            }
          return true;
        }
    
        boolean contains (Object obj) 
        {
            boolean value=false;
            for (int i=0; i<obj.length;i++)
            {
                if(obj[i]==
              //keine Ahnung wie ich zwei Arrays vergleiche
    
            }
    
            String toString()
            {//keine Ahnung was die Funktion machen soll??? Ein Array zu einem String??
            }
    
            boolean remove ( Object obj );
            {
            }
    
            int size ()
            {
               return speicher.length();
            }
    
            boolean isEmpty ()
            {
               if(speicher.lenth()==0)
               { return true; }
               else
                 return false; 
            }
        public static void main(String[] args)
        {
            char[] array= new char[40];
            BagImp1 object = new BagImp1(); 
    
            array="Was soll das";
            System.out.println(object.add(array));
            object.contains(array);
            //object. toString();
            object.size();
            object´.isEmpty();
    
        }
    }
    

    Könnt ihr mir helfen das zu vervollständigen oder einen anderen Lösungsweg aufzeigen?????

    Danke



  • Ja, GdI steht für Grundlagen der Informatik aber wieso ist das KOMISCH ?!?!?!?

    weil in der vorlesung GdI normalerweise nicht programmieren
    sondern automatentheorie, zahlentheorie, turingmaschine usw
    auf der tagesordnung steht. zumindest war das bei mir so.

    [ Dieser Beitrag wurde am 13.01.2003 um 20:57 Uhr von Che editiert. ]



  • Also im Prinzip, ist das eine doch recht einfache Aufgabe.
    Für gewöhnlich solltet ihr den Stoff aber auch in euren Vorlesungen durchgenommen haben.

    Ich studiere zwar nicht an einer Uni und schon garnicht an einer TU 😃
    sondern an einer FH (neu deutsch auch HAW genannt 😉 ),
    aber uns wurde alles was wir für solche Aufgaben brauchten, in den Vorlesungen durchgenommen.

    jedenfalls ein paar Tipps von mir:

    String toString()
            {//keine Ahnung was die Funktion machen soll??? Ein Array zu einem String??
            }
    

    versuchs mal mit (vorausgesetzt, du willst ein char-Array ausgeben):

    return speicher.toString();
    

    oder

    String ergebnis = "";
    for(int i=0; i<speicher.length; i++){
      ergebnis = ergebnis + speicher[i];
    }
    return ergebnis;
    

    (Ich weiss mit einem StringBuffer gehts schneller, aber ist hier wohl oversized 😉 )

    Allerdings weiss ich auch nicht, warum du "Object" speichern sollst, aber ein char-Array implementierst!?!
    Versuchs mal mit einem Array von "Object".
    also:

    Object[] speicher = new Object[40];
    

    Desweiteren würd ich an deiner Stelle eine int-Variable einbauen,
    welche immer auf den nächsten freien Speicherplatz zeigt.
    dann kannst du zB. die Methode add() ganz einfach implementieren:

    public boolean add(Object o){
      if(freiZeiger < speicher.length){
        speicher[freiZeiger] = o;
        freiZeiger++;
        return true;
      }
      else{
        return false;
      }
    }
    

  • Mod

    Original erstellt von Che:
    **weil in der vorlesung GdI normalerweise nicht programmieren
    sondern automatentheorie, zahlentheorie, turingmaschine usw
    auf der tagesordnung steht. zumindest war das bei mir so.
    **

    ...und ich meinte das auch aus genau diesem Grund! ...aber letztendlich muss jede Uni selbst wissen, wie sie was nennt. Ist eigentlich nicht so wichtig!



  • Original erstellt von Che:
    **weil in der vorlesung GdI normalerweise nicht programmieren
    sondern automatentheorie, zahlentheorie, turingmaschine usw
    auf der tagesordnung steht. zumindest war das bei mir so.

    **

    also bei uns kam in Automatentheorie und Turingmaschine in "Automatentheorie und Formalesprachen" dran. <- Und das hattest bestimmt auch nicht im 1. Semester 😉
    In GDI war bei uns eher sowas wie Assembler und C an der Tagesordnung.
    Genauer:
    -Grundlegende Hardwarestruktur
    -Adressierungsarten
    -einfache Maschinenbefehle
    -binäre Informationsdarstellung
    -etc...

    MfG Ingo


  • Mod

    Offensichtlich ist GdI eine Abkürzung, die absolut alles bedeuten kann! 🙂



  • WTF is GDI? Graphics Device Interface? 🙂





  • *auch ohne Worte*
    😃 🕶 😃 🕶 😃 🕶 😃 🕶



  • Grundzüge der Informatik!!! 😡 😡 😡



  • @gerner: Du hast sicherlich einen sehr empfindlichen Magen ... bei all der Galle 🙂 Lass Dich mal diesbezüglich untersuchen - das kann doch nicht gesund sein.



  • Hi

    Erstmal Danke an Ingo aka Desert Hawk du hast mir dank deiner Beispiele gezeigt wo mein Denkfehler lag. Ich speichere in dem Array ja nur den "Zeiger auf das Objekt" und nicht Sätze wie "Hallo Welt" usw.
    Wie dumm von mir. Lag wohl daran das wir letzte Woche Strings hatten 🙂

    Zu der GdI-Bezeichnung
    Ich weiß das in Mainz in der GdI Vorlesung Endliche Automaten das Thema sind.
    Aber das ist ja sowas von Langweilig. Da ist doch eine handfeste Programmiersprache 1000mal besser, oder ????

    ciao



  • Nein ist es nicht ... außer ihr habt ein paar Semester Theoretische Informatik noch dazu



  • Schade 😃 😉 :p :p 🙂 😃 🕶



  • Noch eine letzte Frage ...

    Wie bekomme ich einen Array zu einem String

    das geht nicht

    array.toString();

    das Beispiel von Ingo... auch nicht:
    public String toString()
    {
    String ergebnis =" ";
    for(int i=0; i<tmp.length; i++)
    {
    ergebnis = ergebnis + tmp[i];
    }
    return ergebnis;
    }

    und meine AKTUELLE implementierung geht auch nicht:
    public String toString()
    {
    String temp=new String();
    for(int i=0;!(tmp[i]==null);i++)
    {
    if(tmp[i].getClass().getName().equals("java.lang.String")){
    temp=temp+tmp[i];
    }
    else
    {
    temp=temp+tmp[i].getClass().getName();
    }
    }
    return temp;
    }

    Hat jemand eine Idee wie es funktionieren könnte.
    Wäre nett wenn jemand Helfen könnte.

    Ciao

    JAVA RULEZ IN GDI


  • Mod

    Original erstellt von <Weichei>:
    **
    Wie bekomme ich einen Array zu einem String
    **

    Was soll denn in dem String stehen?



  • es ist so ein Array

    Object[] tmp=new Object[20];

    Methode in der Klasse:

    public boolean add(Object obj){
    tmp[index]=obj;
    index++;
    return true;
    }

    MAIN METHODE:

    public static void main(String[] args){
    System.out.println("Das Ergebnis des Tests:");
    String x="star";
    String y="wars";
    Integer z=new Integer(2);
    Integer w=new Integer(10);
    BagImpl aBagImpl=new BagImpl();
    aBagImpl.add(x);
    aBagImpl.add(z);
    aBagImpl.add(w);
    aBagImpl.add(y);
    ...


Anmelden zum Antworten