Class Problem

Hallo,
habe ein kleines Problem.

Die Class Basic hat Atribute zb. Metal ,Papier ,Holz und Plastik.Alle diese werden in kg gemessen.Werte kann ich setzen wie ich will.Danach soll von der Class Roboter per Threads drauf zugegriffen werden und anfragen stellen.Class Roboter soll 2 Roboter haben die anfragen stellen auf Basic zb.Roboter 1 will 10kg von Holz und Stifte Roboter 2 will Plastik und Papier.

Das problem ist ich weiss nicht genau wie ich mit Class Basic anfangen soll.Eine idee ist einen Constructor basteln mit den Atributen und dann mit this übergeben oder soll ich das besser mit einem Array machen?

Danke für jede Hilfe

[QUOTE=kobs]Hallo,
habe ein kleines Problem.

Die Class Basic hat Atribute zb. Metal ,Papier ,Holz und Plastik.[/quote]
versteh ich schon nicht richtig… in einer klasse sollen alle informationen zu verschieden Objekten sein ?
Warum nicht in versch. Klassen oder eine Enum ?

auch das versteh ich nicht - warum soll die Klasse Roboter 2 Roboter haben ? wir reden hier von 2 versch. Instanzen richtig ?

wieder versteh ich leider nicht viel… welches this übergeben…

Mach eine übergeordnete Containerklasse (oder wie du sie nennen willst) diese hat von versch. Elementen (Metal, Papier etc) versch. Größen/Anzahl etc… der / die Roboter können nun von den Containern die Sache rausholen.

Hoffe das hilft n bisschn - oder es versteht wer anders besser…

hallo und danke fuer Deine Antwort.

Es sieht so aus :Es geht hier allgemein um Threads.

Die Class Basic hat Atribute zb. Metal ,Papier ,Holz und Plastik.Alle diese werden in kg gemessen und sind verfuegbar in begrenzten Mengen.

Zb metal 10 (verfuegbar 10kg)

Metal soll ein fester Wert sein der int Wert (10) soll sich aender koennen.

Eine Class Lager ist ein Thread und soll diese Atribute fuellen mit werten(int) wenn sie lehr sind.Am besten noch mit einer random Methode.

Die klasse Roboter ist ein Thread die noch 2 Threads besizt Roboter 1 und Roboter 2 die diese Mengen verbrauchen und in einem konkurenz kampf sind.

Ih bin jezt dran und versuche die Class Basic zu schreiben,bin mir nur nicht sicher
wie ich die 2 Werte String und Integer schpeichern soll.

Hier mal ein Grundgedanke vom mir



import java.util.*;
public class Basic
{
	public static void main (String[] args)
	{
ArrayList <String> a1 = new ArrayList<String>(); // adding ArrayList fuer String
ArrayList <Integer> a2 = new ArrayList<Integer>(); // adding ArrayList fuer Integer
a1.add("Metal :"); // adding String into ArrayList
a1.add("Papier :");
a1.add("Holz :");
a1.add("Stifte :");

a2.add(50); // adding Integer into ArrayList (startwert)
a2.add(30);
a2.add(20);
a2.add(20);
System.out.print(a1);// print arraylists
System.out.print(a2);
}
}

Ich hoffe ich habs mal besser formuliert.Danke fuer jede Hilfe

Hm. Da wird jetzt erstmal alles in der main erstellt. Das hat mit Klassen und Threads nicht viel zu tun.

Überleg’ dir, welche Methoden deine „Lager“-Klasse haben muss. Was soll man damit machen können? Man soll wohl von außen Dinge aus dieser Lager-Klasse rausnehmen können. Die werden vielleicht über einen String beschrieben. Soll man auch sagen können, wieviele Einheiten man abholen will? Oder soll man immer ALLES abholen? Davon hängt ab, wie diese Methoden aussehen müssen, z.B.

int hole(String material, int kg);

oder

int holeAlles(String material);

Soll die Lager-Classe sich „selbst“ von alleine füllen, oder soll man sich auch von außen (z.B. von dieser Basic-Klasse) füllen müssen? Im zweiten Fall bräuchte man auch eine Methode

void lagere(String material, int kg);

Damit ist (dir, hoffentlich :wink: ) schonmal klar, wie die Schnittstelle der Lager-Klasse aussehen muss.

Dann gibt es die Roboter-Klasse. Was muss die können? Sie muss von einem Lager Material abholen können. D.h. er bräuchte vielleicht eine Methode

void holeVon(Lager lager, String material, int kg);

Soll der Roboter sich selbst merken, was er sich alles abgeholt hat? Wo soll er denn das Zeug hinlegen, was er abgeholt hat? Wer sagt dem Roboter, welches Material er abholen soll? Wenn du das weißt, hast du schonmal ein etwas genaueres Bild von der Roboter-Klasse.

Dann kann man sich langsam Gedanken über die Interaktion der Klassen machen. Was soll passieren, wenn der Roboter von Lager 10 kg Metall anfordert, aber nur 8 kg da sind? Soll er dann warten, bis das Lager (von wem auch immer - von der Basic-Klasse, vielleicht?) wieder aufgefüllt wurde?

Wenn alle diese Fragen geklärt sind (und erst DANN - also wirklich NACHDEM diese Fragen geklärt sind!) kann man sich langsam Gedanken machen, ob man das ganze nun mit einem Array oder zwei ArrayLists oder eine Map oder sonstwie löst…

Vermutlich wäre es in diesem Zusammenhang dann auch hilfreich, sich z.B. mal das http://de.wikipedia.org/wiki/Erzeuger-Verbraucher-Problem anzusehen…


Siehe auch: http://wiki.byte-welt.de/wiki/Java_und_die_Synchronisation