Avatar billede yayo0 Nybegynder
21. oktober 2010 - 12:10 Der er 7 kommentarer og
1 løsning

Håndtere tre forskellige typer

Ideen er, at man skal bruge applikationen til at håndtere tre forskellige typer af kunstværker: bøger, kompositioner og malerier. Disse er i applikationen implementeret som subklasser til den abstrakte superklasse Kunstværk.
Alle klasserne skal skrives, således at nedenstående test-driver kan afvikles korrekt:
public class TestDriver
{
    public static void main(String args[])
    {
        Museum smk = new Museum ("Statens Museum for Kunst", "Sølvtorvet,
København");
        Museum fsm = new Museum ("Fyns Stifts Museum", "Jernbanegade, Odense");
       
        Person lar = new Person ("L.A. Ring","dansk",1854,1933);
        Maleri kal = new Maleri ("Kalkmanden",1908,80,65,smk);
        kal.addOphavsmand(lar);
       
        Person cwe = new Person ("C. W. Eckersberg","dansk",1783,1853);
        Maleri rus = new Maleri ("Et russisk linjeskib til ankers ved
Helsingør",1828,140,135,fsm);
        rus.addOphavsmand(cwe);
       
        Person køb = new Person ("Christian Købke","dansk",1810,1848);
        Maleri par = new Maleri ("Parti fra Dosseringen mod Nørrebro",
1841,100,85,smk);
        par.addOphavsmand(køb);
       
        KunstværkSamling kvs = new KunstværkSamling();
        kvs.add(kal);
        kvs.add(rus);
        kvs.add(par);
       
        Person jl = new Person ("John Lennon","britisk",1940,1980);
        Person pm = new Person ("Paul Mccartney","britisk",1942,0);
        Komposition y = new Komposition("Yesterday",1965,"Rock",211);
        y.addOphavsmand(jl);
        y.addOphavsmand(pm);
       
        Person db = new Person ("David Bowie","britisk",1947,0);
        Komposition lom = new Komposition("Life on Mars",1971,"Rock",309);
        lom.addOphavsmand(db);
       
        kvs.add(y);
        kvs.add(lom);
       
        Person mah = new Person ("Martin A. Hansen","dansk",1909,1955);
        Bog l = new Bog("Løgneren",1950,"Prosa",232);
        l.addOphavsmand(mah);
       
        Person hs = new Person ("Hans Scherfig","dansk",1905,1978);
        Bog dff = new Bog("Det forsømte Forår",1940,"Prosa",218);
        dff.addOphavsmand(hs);
       
        kvs.add(l);
        kvs.add(dff);
               
    }
}


Jeg kan ikke få min testdriver til at virke.
se evt. javapv.jpg
http://img4.imageshack.us/img4/8995/javapv.jpg
Avatar billede heinzdmx Nybegynder
23. oktober 2010 - 15:24 #1
Hvad er det der går galt?

Derudover så er din kunstsamling jo bare en tom klasse? Hvorfor ikke lave din kunstsamling indeholde en liste som så kan tilføjes til?
Avatar billede yayo0 Nybegynder
23. oktober 2010 - 15:30 #2
Jeg ved ikke hvordan jeg kan skrive kunstværksamling da den skal indeholde en enkelt attribut kunstværker, som er et ArrayList objekt, som består af objekter af klassen Kunstværk.
desuden når jeg compile testdrive så får jeg unclosed string literal.
Avatar billede heinzdmx Nybegynder
23. oktober 2010 - 16:19 #3
Du laver din kunstsamling så den ser ud som f.eks.:

public class KunstværkSamling
{
      ArrayList list;

      public KunstværkSamling()
{
list = new ArrayList();
}

public void add(object item)
{
list.add(item);
}
public ArrayList getItems()
{
return list();
}
}


(bemærk den er skrevet direkte i Chrome så der er muligvis syntaksfejl)

Din string fejl:

Du prøver at skrive noget lignende
String hello = "Hello
World");
Du skal i stedet for skrive (hvis du vil have det på 2 linjer):
System.out.println("Hello "
+ "World");

Du kan altså ikke bare trykke enter mit i en streng
Avatar billede yayo0 Nybegynder
24. oktober 2010 - 12:09 #4
public class KunstværkSamling extends Kunstværk
{

      public KunstværkSamling()
{
      ArrayList list;
list = new ArrayList();
}

public void add(Kunstværk etVærk)
{
list.add(etVærk);
}
public ArrayList getEtVærk()
{
return list();
}
}


under public ArrayList getEtVærk() siger den, at den ikke kan finde symbol. class Arraylist
Avatar billede heinzdmx Nybegynder
24. oktober 2010 - 14:19 #5
Du skal sørge for at lave en import af ArrayList

import java.util.ArrayList;

Desuden skal din ArrayList list ikke ligge under din konstruktor. Så kan den kun tilgås under den.

public class KunstværkSamling extends Kunstværk
{
      ArrayList list;
      public KunstværkSamling()
{
list = new ArrayList();
}

public void add(Kunstværk etVærk)
{
list.add(etVærk);
}
public ArrayList getEtVærk()
{
return list();
}
}
Avatar billede yayo0 Nybegynder
24. oktober 2010 - 14:41 #6
tak
Avatar billede yayo0 Nybegynder
24. oktober 2010 - 14:43 #7
Vil du ikke skrive et svar så jeg kan tildele point til dig
Avatar billede heinzdmx Nybegynder
24. oktober 2010 - 14:45 #8
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester