Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Uml Java (http://www.informatikerboard.de/board/thread.php?threadid=2045)


Geschrieben von neuling96 am 06.01.2015 um 08:57:

  Uml Java

hi,
da ich noch nicht ganz das konzept vom UML verstanden habe, hier ein eintwurf ohne testen

code:
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:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:

public interface Comparable {

int compareTo(D other);
}

public class Druckauftrag implementes Comparable{    

private int prioritaet;
private String text;

public Druckauftrag(Sting text, int prioritaet){
this. text= text;
this. prioritaet= prioritaet;
}

public  void setPrioritaet(int prioritaet){
this. prioritaet= prioritaet;
}

public int getPrioritaet(){
return this.prioritaet;
}

public  void settext(String text ){
this. text= text;
}

public String getPrioritaet(){
return this.text;
}

public int compareTo(D other){ 

if ( other.getPrioritaet<this.Prioritaet){
return -1;
}else {
if (other.getPrioritaet==this.Prioritaet){
return0;
}else {
return 1;
   }
  }
}


k.a wie den class drucker noch einbauen soll



Geschrieben von eulerscheZahl am 06.01.2015 um 09:27:

 

Nutze den Compiler (ich sollte mir dafür ein Makro schreiben), der verrät auch, wenn du dich vertippt hast.

implementes -> implements
Sting -> String
return0 -> return 0

überdenke den Methodennamen bei:
code:
1:
2:
3:
public String getPrioritaet(){
return this.text;
}


Fehlt nur noch der Drucker, der die Aufträge erhält.

edit: das D bei Comparable erschließt sich mir nicht. Soll das ein Template sein?



Geschrieben von neuling96 am 06.01.2015 um 10:15:

 

Zitat:
Original von eulerscheZahl


edit: das D bei Comparable erschließt sich mir nicht. Soll das ein Template sein?


sry ich weiß nicht was ein Template ist

code:
1:
2:
3:
public String gettext(){
return this.text;
}


für drucker weiß ich nicht wie ich weiter machen soll

public class Drucker extends Druckerauftrag{

private Druckerauftrag auftrag;


public void drucke(Druckauftrag auftrag){



Geschrieben von eulerscheZahl am 06.01.2015 um 12:28:

 

Dann ohne Template.
Das Problem ist: du musst das D irgendwie in einen Druckauftrag umwandeln können, wenn du die beiden vergleichen willst.
Also entweder: int compareTo(Druckauftrag other); oder int compareTo(Object other);

Zitat:
Drucker extends Druckerauftrag

nein. Der Drucker erbt doch nicht von Auftrag, er hat Aufträge.

code:
1:
2:
3:
4:
5:
6:
public class Drucker {
private ArrayList<Druckerauftrag> auftraege;

public void drucke(Druckauftrag auftrag){ 
    auftraege.add(auftrag);
}



Geschrieben von neuling96 am 06.01.2015 um 13:40:

 

ich dachte immer, wenn das raute symbol am kasten liegt
also zum beispiel
hier liegt raute am drucker kasten

heißt das das drucker erbt verwirrt



Geschrieben von eulerscheZahl am 06.01.2015 um 14:01:

 

Vererbung ist mit einer dreieckigen Spitze (so wie beim Interface, aber die Linie muss durchgezogen sein).
Beim Drucker hast du eine Aggregation.



Geschrieben von neuling96 am 06.01.2015 um 14:45:

 

Die Situation, dass Objekte der Klasse A aus Objekten der Klasse B zusammengesetzt sind, die Zusammensetzung aber nicht essentiell für die Existenz eines Objekts der Klasse Aist

A ist Drucker
B ist Druckaufträge , richtig?


0..n bedeutet Druckauftrag verwendete objekte von Drucker und zwar 0..n ?

1 Drucker verwendet Objekte von Druckauftrag und zwar einen, richtig?



Geschrieben von neuling96 am 06.01.2015 um 14:53:

 

private ArrayList<Druckerauftrag> auftraege;

wieso eine Arraylist Drucker verwendet von Druckauftrag genau ein objekt?



Geschrieben von eulerscheZahl am 06.01.2015 um 15:00:

 

Zitat:
A ist Drucker
B ist Druckaufträge , richtig?

ja

mit der Anzahl hast du Recht, da habe ich nicht richtig aufgepasst. Auch wenn ich so keinen Sinn erkenne, ich schicke doch eine Datei nicht an alle Drucker im Netzwerk, dann habe ich ja hinterher mehr als eine Seite.



Geschrieben von Neuling96 am 06.01.2015 um 15:12:

 

Zitat:
Original von eulerscheZahl
Zitat:
A ist Drucker
B ist Druckaufträge , richtig?

ja

mit der Anzahl hast du Recht, da habe ich nicht richtig aufgepasst. Auch wenn ich so keinen Sinn erkenne, ich schicke doch eine Datei nicht an alle Drucker im Netzwerk, dann habe ich ja hinterher mehr als eine Seite.


Es müsste doch im UML Diagramm die Zahlen 1 und 0..n genau verdreht werden dann passt es oder



Geschrieben von eulerscheZahl am 06.01.2015 um 15:15:

 

Ja, so hatte ich es erst gelesen.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH