Avatar billede moaz03ab Nybegynder
12. november 2003 - 20:04 Der er 6 kommentarer

Oprettelse af Objekt på tværs af klasser

Jeg sidder med to klasser, hvorfra jeg skal oprette et objekt indeholdende (int, string).
Denne metode ligger i main-klassen (OrdreHoved.java):
class OrdreHoved
    private static void opretFoersteKundeOrdre() {
        tilfoejKunde(new Kunde(123,"38394041")); }

OBS...Metoden ligger efter public static void main(String[] args) {}

pt. virker den ikke...Har prøvet flere kombinationer, men jeg kan ikke få det til at virke.

Resten af koden ser ud om følger:
----------------------------------------------------
class NyOrdre
{
    public ArrayList nyOrdre;//se evt. bort fra denne arraylist.
    private KundeOrdre kunde;

    public NyOrdre() {
        nyOrdre = new ArrayList();
        kunde = new KundeOrdre(123,"38394041");//virker fint - ordrenr, tlf ->
                    //men det er ikke sådan jeg ønsker det oprettet.
    }

    public void indsaet(int ordrenr, String varekode, String vareb, String pris, String enhed, String placering) {
        nyOrdre.add(new OrdreLinie(ordrenr, varekode, vareb, pris, enhed, placering));
    }

    public void tilfoejKunde(KundeOrdre ckunde)//Kan ikke få denne metode til at virke
    {
        kunde = ckunde;    //skulle gerne have objektet oprettet her...
    }
}
-----------------------------------------------------
public class KundeOrdre
{
    private int ordrenr;
    private String tlf;

    //definere de forskellige strings, så de er lettere at bruge i hele programmet
    //klasserne imellem...
    public KundeOrdre (int cOrdrenr, String cTlf){
        ordrenr = cOrdrenr;
        tlf = cTlf;
    }
}
Avatar billede arne_v Ekspert
12. november 2003 - 20:15 #1
private static void opretFoersteKundeOrdre() i class OrdreHoved
skal kaldes som:

OrdreHoved.opretFoersteKundeOrdre();
Avatar billede jakoba Nybegynder
12. november 2003 - 20:15 #2
Du kan ikke sige
    new Kunde(...)
når der ikke er nogen klasse der hedder 'Kunde'

ku det være du mener
    new KundeOrdre(...)

mvh JakobA
Avatar billede moaz03ab Nybegynder
12. november 2003 - 20:28 #3
det er tilføj kunde metoden der skal oprette dem
Avatar billede moaz03ab Nybegynder
12. november 2003 - 20:33 #4
Denne linie virker fint: kunde = new KundeOrdre(123,"38394041");
Men skal oprettes via metoden tilfoejKunde(); (I klassen NyOrdre)
-Denne metode kaldes fra den første klasse (OrdreHoved), indeholder (int, string) eller (123, "123456")....Håber det giver mening :)
Avatar billede arne_v Ekspert
12. november 2003 - 21:20 #5
Jeg er lost.
Avatar billede nicas Nybegynder
13. november 2003 - 09:55 #6
Metoden tilfoejKunde(KundeOrdre ckunde) tar en kundeordre som parameter, derfor kan du ikke kalde den med en kunde...

hvis det er tilfoejKunde der skal oprette kunden kan du jo lave den således*:

public void tilfoejKunde(int p1, String p2)
{
  kunde = new Kunde(p1, p2);
}
ellers må du forklare bedre.

/Nicas
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