23. oktober 2004 - 19:54
Der er
15 kommentarer og 1 løsning
sammenkæd 2 klasser
hej eksperter.. Jeg er igang med et skoleprojekt, hvori vi skal laves et program der kan oprette nogle bøger, med tilhørende forfatter.. Vi skal lave minimum 2 klasser.. Forfatter og Bog Jeg er ret ny i java, og kan ikke lige lure hvordan jeg skal få forbundet de 2 klasser, sådan at 1 forfatter kan lave fx 3 vbøger, og når jeg viser forfatter info, skal jeg se de 3 bøger han har lavet..
Annonceindlæg fra Novataris
23. oktober 2004 - 19:57
#1
Forfatter skal vel indeholde en reference til de Bog'er som hører til. Noget a la: import java.util.*; public class Forfatter { private ArrayList boger; ... public void addBog(Bog b) { boger.add(b); } ... }
23. oktober 2004 - 20:05
#2
jeg har min klasse Forfatter: (Forfatter.java) ------------------------------------------------ public class Forfatter { public String navn; public String cpr; public int telefon; public Forfatter(String navn, String cpr, int telefon) // Her oprettes en contructor { this.navn=navn; this.cpr=cpr; this.telefon=telefon; } public void setNavn(String navn) // Opretter metoden setNavn { this.navn=navn; } public void setTelefon(int telefon) // Opretter metoden setTelefon { this.telefon=telefon; } public void setCPR(String cpr) // Opretter metoden setCPR { this.cpr=cpr; } } --------------------------------------------------- og klassen Bog ( BOg.java) --------------------------------------------------- ublic class Bog { public String Titel; public String ISBN; public String Fag; public String Aargang; public String Udgivelses_aar; public int Antal_sider; public double Pris; public Bog( String Titel, String ISBN, String Fag, String Aargang, String Udgivelses_aar, int Antal_sider) // Her oprettes en cuntructor { this.Titel = Titel; this.ISBN = ISBN; this.Fag = Fag; this.Aargang = Aargang; this.Udgivelses_aar = Udgivelses_aar; this.Antal_sider = Antal_sider; } public void setTitel(String Titel) // Opretter metoden setNavn { this.Titel = Titel; } public void setISBN(String ISBN) // Opretter metoden setTelefon { this.ISBN = ISBN; } public void setFag(String Fag) // Opretter metoden setCPR { this.Fag = Fag; } public void setAargang(String Aargang) // Opretter metoden setCPR { this.Aargang = Aargang; } public void setUdgivelses_aar(String Udgivelses_aar) // Opretter metoden setCPR { this.Udgivelses_aar = Udgivelses_aar; } // Udskrivnings metoden public void udskriv_bog(String Titel, String ISBN, String Fag, String Aargang, String Udgivelses_aar) // Opretter metoden setCPR { System.out.println("Titel: " + this.Titel); System.out.println("ISBN: " + this.ISBN); System.out.println("FAG: " + this.Fag); System.out.println("Årgang: " + this.Aargang); System.out.println("Udgivelses ÅR: " + this.Udgivelses_aar); } // slut på udskrivning public void setAntal_sider(int Antal_sider, double Pris) // Opretter metoden setCPR { this.Antal_sider = Antal_sider; double side150over = 0; double side100til149 = 0; double side50til99 = 0; double side1til49 = 0; if(this.Antal_sider > 150) { side150over = this.Antal_sider-149; // antal_sider - 149 side100til149 = this.Antal_sider-99-side150over; side50til99 = this.Antal_sider-49-side100til149-side150over; side1til49 = this.Antal_sider-0-side50til99-side100til149-side150over; this.Pris = (side150over * 1) + (side100til149 * 1.5) + (side50til99 * 2) + (side1til49 * 3); } else if(this.Antal_sider >= 100 && this.Antal_sider <= 149) { side150over = 0; side100til149 = this.Antal_sider-99-side150over; side50til99 = this.Antal_sider-49-side100til149-side150over; side1til49 = this.Antal_sider-0-side50til99-side100til149-side150over; this.Pris = (side100til149 * 1.5) + (side50til99 * 2) + (side1til49 * 3); } else if(this.Antal_sider >= 50 && this.Antal_sider <= 99) { side150over = 0; side100til149 = 0; side50til99 = this.Antal_sider-49-side100til149-side150over; side1til49 = this.Antal_sider-0-side50til99-side100til149-side150over; this.Pris = (side50til99 * 2) + (side1til49 * 3); } else if(this.Antal_sider >= 1 && this.Antal_sider <= 49) { side150over = 0; side100til149 = 0; side50til99 = 0; side1til49 = this.Antal_sider-0-side50til99-side100til149-side150over; this.Pris = (side1til49 * 3); } } } ----------- skal jeg så laveen metode som opretter en bod til forfatteren i min "opret forfatter" klasse?
23. oktober 2004 - 20:08
#3
Du skal tilføje en metode til Forfatter som kan tilføje en bog (addBog) og formentlig en metode som henter alle bøger (getBoger).
23. oktober 2004 - 20:12
#4
ok.. men lad os så lige ta udgangspunkt i dit eksempel: import java.util.*; public class Forfatter { private ArrayList boger; ... public void addBog(Bog b) { boger.add(b); } ... } hvad er b?.. et enkelt "id".. eller er det en række informationer omkring bogen? eller mener du bare jeg skal have alle mine objektet med fra bog-klassen ind i morgen opretBog-metode?
23. oktober 2004 - 20:14
#5
b er et objekt af typen Bog
23. oktober 2004 - 20:16
#6
dvs jeg skal bare lave den om til public void addBog(Bog Titel, Bog Sider, Bog Fag) { // osv osv ?? boger.add(b); og hvad så nede i boger.add(b)?
23. oktober 2004 - 20:18
#7
Nej. public void addBog(Bog b) { er fint.
23. oktober 2004 - 20:18
#8
Skal jeg lige prøve at lave et lidt mere komplet eksempel ?
23. oktober 2004 - 20:32
#9
public class Bog { private String titel; private String forlag; private int udgivelse; public Bog() { this("", "", 0); } public Bog(String titel, String forlag, int udgivelse) { this.titel = titel; this.forlag = forlag; this.udgivelse = udgivelse; } public String getTitel() { return titel; } public void setTitel(String titel) { this.titel = titel; } public String getForlag() { return forlag; } public void setForlag(String forlag) { this.forlag = forlag; } public int getUdgivelse() { return udgivelse; } public void setUdgivelse(int udgivelse) { this.udgivelse = udgivelse; } public String toString() { return (titel + " " + forlag + " " + udgivelse); } }
23. oktober 2004 - 20:32
#10
import java.util.*; public class Forfatter { private String navn; private List boger; public Forfatter() { this(""); } public Forfatter(String navn) { this.navn = navn; boger = new ArrayList(); } public String getNavn() { return navn; } public void setNavn(String navn) { this.navn = navn; } public void addBog(Bog b) { boger.add(b); } public String toString() { StringBuffer sb = new StringBuffer(navn + ": "); for(int i = 0; i < boger.size(); i++) { if(i > 0) { sb.append(","); } sb.append(boger.get(i).toString()); } return sb.toString(); } }
23. oktober 2004 - 20:33
#11
public class TestForfatterBog { public static void main(String[] args) { Forfatter f = new Forfatter("Anders Andersen"); f.addBog(new Bog("En A historie", "Superforlaget", 1990)); f.addBog(new Bog("Essay", "Superforlaget", 1992)); System.out.println(f); } }
23. oktober 2004 - 20:33
#12
Output: Anders Andersen: En A historie Superforlaget 1990,Essay Superforlaget 1992
23. oktober 2004 - 20:36
#13
ja tak :)
23. oktober 2004 - 20:43
#14
Allerede postet !
23. oktober 2004 - 20:58
#15
hehe... jeg har ikke tid til at prøve det nu!,. men smid et svar. så får du point ;)
23. oktober 2004 - 21:04
#16
ok
Kurser inden for grundlæggende programmering