vendredi 29 mai 2015

Klassenhierachie-Aufgabe (Polygon)

Hallo zusammen,

Ich sitze gerade an meinem Übungsblatt und kommen einfach nicht weiter.

Meine Frage ist könnt ihr euch das mal durchschauen also Aufgaben 3 bis 5.

Ich versteh nicht ganz wie ich das mit der Klasse Punkt machen soll, als interface oder vlt durch Aggregation?

Oder Punkt in die superklasse farbigeGeometrischeObjekte aggregierre? Dann hätten Ja alle klassen die Erben den Mittelpunkt oder?

Vielen Dank im vorraus für eure HIlfe!

Java Code:

  1. package klassen;
  2.  
  3. public interface Figuren {
  4.  
  5. public void verschiebenGeometrischerFiguren(double x, double y);
  6.  
  7. }
  8.  
  9. package klassen;
  10.  
  11. public abstract class FarbigeGeometrischeObjekte {
  12.  
  13. private String farbe;
  14. private Punkt position;
  15.  
  16. public String getFarbe(){
  17. return farbe;
  18. }
  19.  
  20. public FarbigeGeometrischeObjekte (String color, Punkt position){
  21. this.farbe = color;
  22. this.position = position;
  23. }
  24.  
  25. public abstract double berechneUmfang();
  26.  
  27. public Punkt getPosition() {
  28. return position;
  29. }
  30.  
  31. public void setPosition(Punkt position) {
  32. this.position = position;
  33. }
  34.  
  35.  
  36. }
  37.  
  38. package klassen;
  39.  
  40. /**
  41.  * Definiert eine Klasse Punkt in einem zweidimensionalen karthesischen Koordinatensystem.
  42.  * Ein Punkt wird jeweils durch eine X und eine Y Koordinate beschrieben.
  43.  * Die Koordinaten werden hierbei in Gleitkommazahlen dargestellt.
  44.  *
  45.  * @author
  46.  * @version 1.0
  47.  * @since 11.04.2015
  48.  *
  49.  */
  50.  
  51.  
  52. public class Punkt implements Figuren {
  53.  
  54. private double xKoordinate;
  55. private double yKoordinate;
  56.  
  57. public Punkt(double x, double y){
  58.  
  59. xKoordinate = x;
  60. yKoordinate = y;
  61. }
  62.  
  63. public double getXKoordinate(){
  64.  
  65. return xKoordinate;
  66. }
  67.  
  68. public void setXKoordinate(double x){
  69.  
  70. xKoordinate = x;
  71. }
  72.  
  73.  
  74. public double getYKoordinate() {
  75.  
  76. return yKoordinate;
  77. }
  78.  
  79. public void setYKoordinate(double y) {
  80.  
  81. yKoordinate = y;
  82. }
  83.  
  84. /**
  85.  *
  86.  * Gibt die Attribute eines Punktobjekts formatiert als einen String zurück.
  87.  * Sprich die X-Koordinate und die Y-Koordinate.
  88.  *
  89.  *@return einen formatierten String
  90.  */
  91. @Override
  92. public String toString(){
  93.  
  94. return String.format("(%.2f | %.2f)", xKoordinate, yKoordinate);
  95. }
  96.  
  97. @Override
  98. public void verschiebenGeometrischerFiguren(double x, double y) {
  99. xKoordinate = xKoordinate + x;
  100. yKoordinate = yKoordinate + y;
  101. }
  102. }
  103.  
  104. package klassen;
  105.  
  106. /**
  107.  * Beschreibt einen Kreis mit drei Eigenschaften: Position, Radius und der Farbe.
  108.  * Der Kreis kann verschoben werden uns sein Umfang wird errechnet.
  109.  *
  110.  * @author
  111.  * @version 1.0
  112.  * @since 11.04.2015
  113.  *
  114.  */
  115.  
  116. public class Kreis extends FarbigeGeometrischeObjekte implements Figuren {
  117.  
  118. //private Punkt position;
  119. private double radius;
  120. //private String farbe;
  121.  
  122. private static double KREISZAHL = 3.141592653;
  123.  
  124.  
  125. public Kreis(String farbe,Punkt position, double rad){
  126. super(farbe,position);
  127. // this.position = position;
  128. this.radius = rad;
  129. }
  130.  
  131.  
  132. /**
  133.  *
  134.  * Es werden eine X und eine Y-Koordinate übergegen, um welche sich dann der Mittelpunkt(Position) des
  135.  * Kreises verschiebt.
  136.  *
  137.  * @param x ist ein Übergabeparameter, Verschiebung in der X-Achse
  138.  * @param y ist ein Übergabeparameter, Verschiebung in der Y-Achse
  139.  * @return nichts
  140.  */
  141.  
  142. @Override
  143. public void verschiebenGeometrischerFiguren(double x, double y) {
  144.  
  145. getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
  146. getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
  147.  
  148. }
  149.  
  150. /**
  151.  *
  152.  * Berechnet den Umfang des Kreises nach folgender Formel:
  153.  * Umfang = 2.0 * KREISZAHL * radius
  154.  *
  155.  * @return den Umfang des Kreises
  156.  */
  157. @Override
  158. public double berechneUmfang() {
  159. return 2.0 * KREISZAHL * radius;
  160. }
  161.  
  162. /**
  163.  *
  164.  * Gibt die Argumente des Kreisobjekts formatiert als einen String wieder.
  165.  * Die Argumente sind: Position, Radius, Farbe und der Umfang.
  166.  *
  167.  * @return einen formatierten String
  168.  */
  169.  
  170. @Override
  171.  
  172. public String toString(){
  173.  
  174. return String.format("Mittelpunkt: %1$s; Radius: %2$.4f; Farbe: %3$s; Umfang: %4$.4f", getPosition().toString (), radius, getFarbe(), berechneUmfang());
  175. }
  176.  
  177. /**
  178.  *
  179.  * Mehrere Objekte werden erzeugt und ihre ihnen schon bekannten Methoden werden aufgerufen.
  180.  *
  181.  * @return nichts
  182.  */
  183. // public static void main(String[] args) {
  184. //
  185. // Punkt p1 = new Punkt(2.0,5.0);
  186. // Kreis k1 = new Kreis("rot",p1,10.0);
  187. //
  188. // System.out.println("p1: " + p1.toString());
  189. //
  190. // System.out.println("\nk1: " + k1.toString());
  191. //
  192. // k1.verschiebenGeometrischerFiguren(20.0, 20.0);
  193. //
  194. // System.out.println("\nNach der Verschiebung: \n\nk1: " + k1.toString());
  195. //
  196. // }
  197.  
  198. }
  199.  
  200. package klassen;
  201.  
  202. public abstract class Polygon extends FarbigeGeometrischeObjekte {
  203.  
  204. public Polygon(String farbe,Punkt position) {
  205. super(farbe,position);
  206. }
  207.  
  208. }
  209.  
  210. package klassen;
  211.  
  212. public class Quadrat extends Polygon implements Figuren {
  213.  
  214. private double seitenLaengeA;
  215.  
  216. public Quadrat(String farbe, Punkt position,double a) {
  217. super(farbe, position);
  218. this.seitenLaengeA = a;
  219. }
  220.  
  221. public double berechneUmfang(){
  222. return 4.0 * seitenLaengeA;
  223. }
  224.  
  225. @Override
  226. public void verschiebenGeometrischerFiguren(double x, double y) {
  227. getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
  228. getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
  229.  
  230. }
  231.  
  232. }
  233.  
  234. package klassen;
  235.  
  236. public class Rechteck extends Polygon implements Figuren {
  237.  
  238. private double seitenLaengeA;
  239. private double seitenLaengeB;
  240.  
  241. public Rechteck(String farbe, Punkt position, double a, double b){
  242. super(farbe,position);
  243. this.seitenLaengeA = a;
  244. this.seitenLaengeB = b;
  245. }
  246.  
  247. @Override
  248. public double berechneUmfang() {
  249. return 2.0 * (seitenLaengeA + seitenLaengeB);
  250. }
  251.  
  252. @Override
  253. public void verschiebenGeometrischerFiguren(double x, double y) {
  254. getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
  255. getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
  256. }
  257.  
  258. }
Angehängte Dateien


Klassenhierachie-Aufgabe (Polygon)

0 commentaires:

Enregistrer un commentaire