[Java][beginner][bluej] Arraylist probleemjes

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Bakkertje_01
  • Registratie: November 2010
  • Laatst online: 15:47
Hallo ik ben een beginner met Java en probeer wat te oefenen, ik heb de volgende 4 klassen:

Dit is de klasse product, voer ik het soort en de prijs in. Deze klasse is gekoppeld aan bestelling.
Java: Product
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
public class Product
{
    // instance variables - replace the example below with your own
    private double productPrice;
    private String productName;
    
    /**
     * Constructor for objects of class Product
     */
    public Product(double productPrice, String productName)
    {
        // initialise instance variables
        this.productName = productName;
        this.productPrice = productPrice;
    }

     /**
     *
     */
    public double getProductPrice()
    {
        // put your code here
        return productPrice;
    }
    
     /**
     *
     */
    public String getProductName()
    {
        // put your code here
        return productName;
    }
}
 


Deze klasse staat boven bestelling
Java: Administratie
1
2
3
 
Administratie, deze is nog leeg, moet uiteindelijk alles berekenen.
 


Dit is de klasse naam, zie het als een soort Starbucks, bestel koffie en zeg je naam. Deze klasse is gekoppeld aan bestelling.
Java: Name
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
public class Name
{
    // instance variables - replace the example below with your own
    private String name;

    /**
     * 
     */
    public Name()
    {
        // initialise instance variables
        this.name = name;
    }

    /**
     * 
     */
     public String getName()
    {
        // put your code here
        return name;
    }
}
 


In de klasse bestelling wil ik de producten graag koppelen met de gene die het besteld heeft (klasse naam).
Java: bestelling
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
import java.util.ArrayList;
/**
 *
 */
public class bestelling
{
    // instance variables - replace the example below with your own
    private ArrayList<Product> producten;
    
    /**
     * Constructor for objects of class bestelling
     */
    public bestelling()
    {
        // initialise instance variables
       producten = new ArrayList<>();
    }

    /**
     *
     */
    public void addProduct(Product product)
    {
        producten.add(product);
    }
    
     /**
     *
     */
    public int numberOfProducts(){
        return producten.size();
    }
}

 


nu kan ik het product er wel in mijn araylist krijgen, maar heb ik geen idee hoe ik de klasse naam er mee moet koppelen, zodat het 1 geheel wordt. kunnen jullie mij hierbij helpen?

Acties:
  • 0 Henk 'm!

Verwijderd

Kan een bestelling door meerdere personen gedaan worden? Zo nee, dan heeft bestelling een property 'name' nodig voor degene die al die producten bestelt, en die je eenmalig een waarde geeft. Zo ja, dan moet je product en persoon koppelen in een object of zo - ik ben niet echt thuis in Java. Iets als
Java:
1
2
3
4
    public void addBestelling(Product product, Name name)
    {
        producten.add( { product: product, name: name } );
    }

of zo...

Acties:
  • 0 Henk 'm!

  • Rotterdammertje
  • Registratie: Juni 2002
  • Laatst online: 28-03-2023
Overigens is "Name" een wat vreemde kandidaat voor een class. Wat voor een gedrag heeft een naam? Het is waarschijnlijk duidelijker om, in plaats van een class "Name", een class "Person" te maken. Deze Person class heeft dan een property "name", met een getter en setter.

Een bestelling wordt, lijkt me, gedaan door 1 persoon. Die persoon kan meer producten bestellen. Je krijgt dan dus een class "Order" (consistent in het Engels, met Hoofdletter), met een property "person" van type "Person", en een property "products", van type "List<Product>". Ook weer met getters en setters.

main = putStr (q ++ show q); q = "main = putStr (q ++ show q); q = "