Objekte die sich auf Objekte beziehen: Keine Vererbung

  • Themenstarter Themenstarter Schnick81
  • Beginndatum Beginndatum
S

Schnick81

Gast
Hej,

ich bin noch recht unbedarfter Java Anfänger und habe einige Fragen zu einem kurzen ersten Programm, was wir erstellen sollen.
Kurz zur Aufgabenstellung:
- Erstelle drei Klassen
- In der ersten erzeuge einen Punkt
- In der zweiten erzeuge einen Kreis, der aus den Punkten besteht
- Erzeuge eine Klasse mit einer main Methode, die einen Kreis auf den Bildschirm ausgibt.

Zu meinem Problem:
- In der Klasse Kreis gibt es eine Methode public Punkt getMittelpunkt(), ich denke hier soll ich die beiden Punkte aus der Klasse Punkt aufrufen, nur ich habe keinen blassen Schimmer, wie ich das am Besten angehe.

Mein bisheriger Ansatz sieht so aus:



Relevanter Quellcode:
[JAVA ]

public class Punkt
{
//Instanzvariablen
private double x;
private double y;
//Konstruktor
public Punkt(double x, double y)
{
this.x = x;
this.y = y;
}
// Get- und Set-Methoden
public double getX() // Gibt x zurück
{
return this.x;
}
public double getY() // Gibt y zurück
{
return this.y;
}

public void setX(double x) //Verschiebt y entlang der x Achse
{
this.x+=x;
}
public void setY(double y) // Verschiebt y entlang der y Achse
{
this.y+=y;
}
}
import java.lang.Math;
public class Kreis // ohne Setter-Methoden
{

private double Punkt mittelpunkt;
private double radius;

public Kreis (Punkt mittelpunkt, double radius) // Konstruktor der neuen Klasse
{
this.Punkt mittelpunkt = Punkt mittelpunkt;
this.radius = radius;
}

public Punkt getMittelpunkt() // soll den aus den Punkten x und y der Klasse Punkt (Methoden getX und getY) zusammengesetzt werden
{
return (Math.abs(getX()) - Math.abs(getY()); // Abstand ermitteln?! Absolut keine Ahnung hier an dieser Stelle!
}

public double getRadius()
{
return radius;
}

public double getFlaeche()
{
double flaeche = (2*Math.PI*radius);
return flaeche;
}
public void getUmfang()
{
double umfang = (Math.PI*radius*radius);
return umfang;
}

public String toString()
{
return ("Kreis mit dem Mittelpunkt "+ mittelpunkt +"und dem Radius "+ radius +"hat den Umfang: "+ umfang +"und den Flächeninhalt "+ flaeche");
}
}

public class PunktTester
{
Punkt neuerPunkt = new Punkt (10,20); // Erzeugen eines neuen Punktes
Kreis neuerKreis = new Kreis (15); /* Der Konstruktor der Klasse Kreis müsste
doch somit richtig aufgerufen werden,
da er ja den ersten Parameter aus der Klasse Punkt bezieht?! */

neuerKreis.Kreis(toString()); //
System.out.println(neuerKreis.toString());
}} [/code]

Ich würde mich sehr freuen, wenn jemand eine Idee hat und mir weiterhelfen kann.

Gruß,

Tobi
 
okay ich versuche mich mal es ist so du schreibst deine klasse...
Java:
puplic class beispiel1
{
//attribute...
public double seiteA;// und so weiter jenach dem was du halt brauchst
}

dann gehst du in deine main calsse und erzeugst eine referent auf [deine unterklasse
desweiteren kommt ein konstrucktor aufruf dazu
ich hab das ganze mal an einem bsp mit einem rechteck gemacht für dich!
unterklasse
Java:
package rechteck;


public class rechteck1 {
    public double seiteA;
    public double seiteB;

public void showFlaeche()
    {
    System.out.println("Die Flaeche beträgt: "
                        +((seiteA/100)*(seiteB/100))+"m*m");
    }//public void showFlaeche

}// ende public class rechteck1

und die MAIN klasse:
Java:
package rechteck;


public class Main {

    
    public static void main(String[] args) {
        rechteck1 r1,r2;
        r1=new rechteck1();
        r2=new rechteck1();
            r1.seiteA= 4.0;
            r1.seiteB= 4.2;
            r2.seiteA= 4.0;
            r2.seiteB= 5.3;
            System.out.println("objekt r1 (seite A):"+r1.seiteA);
            System.out.println("objekt r1 (seite B):"+r1.seiteB);
            r1.showFlaeche();
            System.out.println("objekt r2 (seite A):"+r1.seiteA);
            System.out.println("objekt r2 (seite A):"+r1.seiteB);
            r2.showFlaeche();
            System.out.println("ende"); 

    }//ende public static void main

}//ende main

lass dich nicht von dem package verwirren ich pack immer alles in packages was aber nicht zwingend notwendig ist
hoffe es hilft dir weiter!!:bahnhof:
 
Moin,

also, ich mir den Code nur seeehr oberflächlich angeschaut - wegen der grausamen Formatierung und weil ich die Frage nicht genau verstanden habe resp. mir nicht ganz klar ist, wo genau Dein Problem liegt ....

Aber zwei Anmerkungen dazu:
Relevanter Quellcode:
[JAVA ]
damit die Formatierung halbwegs korrekt und lesbar ist, solltest Du an dieser Stelle das Blank nach dem 'A' rausnehmen 😱

public Punkt getMittelpunkt() // soll den aus den Punkten x und y der Klasse Punkt (Methoden getX und getY) zusammengesetzt werden
{
return (Math.abs(getX()) - Math.abs(getY()); // Abstand ermitteln?! Absolut keine Ahnung hier an dieser Stelle!
}
Abstand ermitteln ???:L:bahnhof:
Wieso ???:L
Falls "Math.abs()" meinst, dass hat nix mit 'Abstand' zu tun ....
"Absolutwert" ist hier das Stichwort - und schau mal in's API

Aber was soll die Funktion den nmachen?
Was genau bezeichnen die Punkte X und Y?
Was soll die Differenz aus beiden ergeben?

Fragen über Fragen .... 😉

Gruß
Klaus
 
Vielen Dank für die Antworten bisher...bevor ich mecker kriege muss ich gestehen, dass ich den post versehentlich 2x heute hier eingestellt habe...bitte um Nachsicht ... wenn einer den Post nochmal liest....einfach überlesen 🙂)
 
Hej,

ja danke, sowas in der Art habe ich schon öfter in den letzten Tagen gemacht, auch das mit dem package leuchtet mir auch ein.

Bisher habe ich immer nur ein neues Objekt in der main Klasse erzeugt und war dadurch vollkommen aus der Rolle, was das jetzt plötzlich in einer anderen Klasse soll..

Aber mit ein wenig nachdenken, erschließt sich mir ein anderer Weg, zumal das mit dem Abstand dann hier auch keinen Sinn mehr macht...im Gegenteil...da war ich wohl etwas zu voreilig 😛

Ich habe mir noch einen anderen Ansatz überlegt und werde ihn heute abend mal implementieren. Nicht völlig neu, da schon einiges Richtiges dabei war, aber insbesondere die getMittelpunkt() Methode werd ich nochmal neu schreiben.

Mir hat es sehr geholfen, das der Vorposter mich nochmal auf die Methodik des Anlegens von Objekten hingewiesen hat.

Um ehrlich zu sein, ich habe die Aufgabe wesentlich komplizierter verstanden, als diese tatsächlich ist 😀

Danke euch allen, hat mir sehr weitergeholfen!!!

Bester Gruß,

Tobi.
 
das is doch super!!!
poste aufjedenfall dann deine lösungen mal und bei weiteren problemen einfach fragen!!

es ist immer sinnvoll wenn funktionen (oder was auch immer) umfangreicher sind diese auszulagern somit hat man dann in der main klasse einen besseren überblick und kann dinge auch einfacher ändern bzw wieder finden wie wenn alles in einer klasse steht:toll:

viel spaß noch mit java
 

Zurück
Oben