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]package klassen;
public interface Figuren {
public void verschiebenGeometrischerFiguren(double x, double y);
}
package klassen;
public abstract class FarbigeGeometrischeObjekte {
private String farbe;
private Punkt position;
public String getFarbe(){
return farbe;
}
public FarbigeGeometrischeObjekte (String color, Punkt position){
this.farbe = color;
this.position = position;
}
public abstract double berechneUmfang();
public Punkt getPosition() {
return position;
}
public void setPosition(Punkt position) {
this.position = position;
}
}
package klassen;
/**
* Definiert eine Klasse Punkt in einem zweidimensionalen karthesischen Koordinatensystem.
* Ein Punkt wird jeweils durch eine X und eine Y Koordinate beschrieben.
* Die Koordinaten werden hierbei in Gleitkommazahlen dargestellt.
*
* @author
* @version 1.0
* @since 11.04.2015
*
*/
public class Punkt implements Figuren {
private double xKoordinate;
private double yKoordinate;
public Punkt(double x, double y){
xKoordinate = x;
yKoordinate = y;
}
public double getXKoordinate(){
return xKoordinate;
}
public void setXKoordinate(double x){
xKoordinate = x;
}
public double getYKoordinate() {
return yKoordinate;
}
public void setYKoordinate(double y) {
yKoordinate = y;
}
/**
*
* Gibt die Attribute eines Punktobjekts formatiert als einen String zurück.
* Sprich die X-Koordinate und die Y-Koordinate.
*
*@return einen formatierten String
*/
@Override
public String toString(){
return String.format("(%.2f | %.2f)", xKoordinate, yKoordinate);
}
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
xKoordinate = xKoordinate + x;
yKoordinate = yKoordinate + y;
}
}
package klassen;
/**
* Beschreibt einen Kreis mit drei Eigenschaften: Position, Radius und der Farbe.
* Der Kreis kann verschoben werden uns sein Umfang wird errechnet.
*
* @author
* @version 1.0
* @since 11.04.2015
*
*/
public class Kreis extends FarbigeGeometrischeObjekte implements Figuren {
//private Punkt position;
private double radius;
//private String farbe;
private static double KREISZAHL = 3.141592653;
public Kreis(String farbe,Punkt position, double rad){
super(farbe,position);
// this.position = position;
this.radius = rad;
}
/**
*
* Es werden eine X und eine Y-Koordinate übergegen, um welche sich dann der Mittelpunkt(Position) des
* Kreises verschiebt.
*
* @param x ist ein Übergabeparameter, Verschiebung in der X-Achse
* @param y ist ein Übergabeparameter, Verschiebung in der Y-Achse
* @return nichts
*/
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
}
/**
*
* Berechnet den Umfang des Kreises nach folgender Formel:
* Umfang = 2.0 * KREISZAHL * radius
*
* @return den Umfang des Kreises
*/
@Override
public double berechneUmfang() {
return 2.0 * KREISZAHL * radius;
}
/**
*
* Gibt die Argumente des Kreisobjekts formatiert als einen String wieder.
* Die Argumente sind: Position, Radius, Farbe und der Umfang.
*
* @return einen formatierten String
*/
@Override
public String toString(){
return String.format("Mittelpunkt: %1$s; Radius: %2$.4f; Farbe: %3$s; Umfang: %4$.4f", getPosition().toString (), radius, getFarbe(), berechneUmfang());
}
/**
*
* Mehrere Objekte werden erzeugt und ihre ihnen schon bekannten Methoden werden aufgerufen.
*
* @return nichts
*/
// public static void main(String[] args) {
//
// Punkt p1 = new Punkt(2.0,5.0);
// Kreis k1 = new Kreis("rot",p1,10.0);
//
// System.out.println("p1: " + p1.toString());
//
// System.out.println("\nk1: " + k1.toString());
//
// k1.verschiebenGeometrischerFiguren(20.0, 20.0);
//
// System.out.println("\nNach der Verschiebung: \n\nk1: " + k1.toString());
//
// }
}
package klassen;
public abstract class Polygon extends FarbigeGeometrischeObjekte {
public Polygon(String farbe,Punkt position) {
super(farbe,position);
}
}
package klassen;
public class Quadrat extends Polygon implements Figuren {
private double seitenLaengeA;
public Quadrat(String farbe, Punkt position,double a) {
super(farbe, position);
this.seitenLaengeA = a;
}
public double berechneUmfang(){
return 4.0 * seitenLaengeA;
}
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
}
}
package klassen;
public class Rechteck extends Polygon implements Figuren {
private double seitenLaengeA;
private double seitenLaengeB;
public Rechteck(String farbe, Punkt position, double a, double b){
super(farbe,position);
this.seitenLaengeA = a;
this.seitenLaengeB = b;
}
@Override
public double berechneUmfang() {
return 2.0 * (seitenLaengeA + seitenLaengeB);
}
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
}
}
[/code]
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]package klassen;
public interface Figuren {
public void verschiebenGeometrischerFiguren(double x, double y);
}
package klassen;
public abstract class FarbigeGeometrischeObjekte {
private String farbe;
private Punkt position;
public String getFarbe(){
return farbe;
}
public FarbigeGeometrischeObjekte (String color, Punkt position){
this.farbe = color;
this.position = position;
}
public abstract double berechneUmfang();
public Punkt getPosition() {
return position;
}
public void setPosition(Punkt position) {
this.position = position;
}
}
package klassen;
/**
* Definiert eine Klasse Punkt in einem zweidimensionalen karthesischen Koordinatensystem.
* Ein Punkt wird jeweils durch eine X und eine Y Koordinate beschrieben.
* Die Koordinaten werden hierbei in Gleitkommazahlen dargestellt.
*
* @author
* @version 1.0
* @since 11.04.2015
*
*/
public class Punkt implements Figuren {
private double xKoordinate;
private double yKoordinate;
public Punkt(double x, double y){
xKoordinate = x;
yKoordinate = y;
}
public double getXKoordinate(){
return xKoordinate;
}
public void setXKoordinate(double x){
xKoordinate = x;
}
public double getYKoordinate() {
return yKoordinate;
}
public void setYKoordinate(double y) {
yKoordinate = y;
}
/**
*
* Gibt die Attribute eines Punktobjekts formatiert als einen String zurück.
* Sprich die X-Koordinate und die Y-Koordinate.
*
*@return einen formatierten String
*/
@Override
public String toString(){
return String.format("(%.2f | %.2f)", xKoordinate, yKoordinate);
}
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
xKoordinate = xKoordinate + x;
yKoordinate = yKoordinate + y;
}
}
package klassen;
/**
* Beschreibt einen Kreis mit drei Eigenschaften: Position, Radius und der Farbe.
* Der Kreis kann verschoben werden uns sein Umfang wird errechnet.
*
* @author
* @version 1.0
* @since 11.04.2015
*
*/
public class Kreis extends FarbigeGeometrischeObjekte implements Figuren {
//private Punkt position;
private double radius;
//private String farbe;
private static double KREISZAHL = 3.141592653;
public Kreis(String farbe,Punkt position, double rad){
super(farbe,position);
// this.position = position;
this.radius = rad;
}
/**
*
* Es werden eine X und eine Y-Koordinate übergegen, um welche sich dann der Mittelpunkt(Position) des
* Kreises verschiebt.
*
* @param x ist ein Übergabeparameter, Verschiebung in der X-Achse
* @param y ist ein Übergabeparameter, Verschiebung in der Y-Achse
* @return nichts
*/
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
}
/**
*
* Berechnet den Umfang des Kreises nach folgender Formel:
* Umfang = 2.0 * KREISZAHL * radius
*
* @return den Umfang des Kreises
*/
@Override
public double berechneUmfang() {
return 2.0 * KREISZAHL * radius;
}
/**
*
* Gibt die Argumente des Kreisobjekts formatiert als einen String wieder.
* Die Argumente sind: Position, Radius, Farbe und der Umfang.
*
* @return einen formatierten String
*/
@Override
public String toString(){
return String.format("Mittelpunkt: %1$s; Radius: %2$.4f; Farbe: %3$s; Umfang: %4$.4f", getPosition().toString (), radius, getFarbe(), berechneUmfang());
}
/**
*
* Mehrere Objekte werden erzeugt und ihre ihnen schon bekannten Methoden werden aufgerufen.
*
* @return nichts
*/
// public static void main(String[] args) {
//
// Punkt p1 = new Punkt(2.0,5.0);
// Kreis k1 = new Kreis("rot",p1,10.0);
//
// System.out.println("p1: " + p1.toString());
//
// System.out.println("\nk1: " + k1.toString());
//
// k1.verschiebenGeometrischerFiguren(20.0, 20.0);
//
// System.out.println("\nNach der Verschiebung: \n\nk1: " + k1.toString());
//
// }
}
package klassen;
public abstract class Polygon extends FarbigeGeometrischeObjekte {
public Polygon(String farbe,Punkt position) {
super(farbe,position);
}
}
package klassen;
public class Quadrat extends Polygon implements Figuren {
private double seitenLaengeA;
public Quadrat(String farbe, Punkt position,double a) {
super(farbe, position);
this.seitenLaengeA = a;
}
public double berechneUmfang(){
return 4.0 * seitenLaengeA;
}
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
}
}
package klassen;
public class Rechteck extends Polygon implements Figuren {
private double seitenLaengeA;
private double seitenLaengeB;
public Rechteck(String farbe, Punkt position, double a, double b){
super(farbe,position);
this.seitenLaengeA = a;
this.seitenLaengeB = b;
}
@Override
public double berechneUmfang() {
return 2.0 * (seitenLaengeA + seitenLaengeB);
}
@Override
public void verschiebenGeometrischerFiguren(double x, double y) {
getPosition().setXKoordinate(getPosition().getXKoordinate () + x);
getPosition().setYKoordinate(getPosition().getYKoordinate () + y);
}
}
[/code]
Anhänge
Zuletzt bearbeitet: