Entwickler-Ecke

C# - Die Sprache - Problem mit Klassen


baphumet - Mi 28.10.09 15:08
Titel: Problem mit Klassen
Hi, ich soll eine Klasse Kreis erstellen, diese hat drei Attribute, den Radius und die
Koordinaten des Mittelpunkts, die Methode dient zum Berechnen des Flächeninhalts und mit show kann man sich das anzeigen lassen.
Ich finde das bisher auch gut, aber wie kann ich nun ein Objekt der Klasse Kreis erzeugen, bei der gleich der Radius und die Koordianten festgelegt werden.

Hier mein Code dazu

C#-Quelltext
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:
class Kreis
    {
        private double r;
        private double x;
        private double y;
        
        public void Kreis(double r,double x, double y) {
            this.r = r;
            this.x = x;
            this.y = y;
        }

        static public double Flaeche()
        {
            const double myPI = 3.14159;
            return r * r * myPI;

        }
        static public void show()
        {
            Console.WriteLine("Radius:     " + r);
            Console.WriteLine("Koordinaten:" + x+" "+y);
            Console.WriteLine("Fläche:     " + Flaeche());
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Kreis Kreis1= new Kreis(1,2,3);//Wie bekomm ich das hin
            Kreis Kreis2= new Kreis(1,2,3);
            Kreis1.show();
        }
    }


bakachan - Mi 28.10.09 15:15

Um die Daten in das Objekt zu kriegen hast du verschiedene Möglichkeiten:
- Kontruktoren
- Funktion die die Daten setzt (Init)
-Properties
.
.
.

Absolute Grundlagen, da empfiehlt sich ein Buch/Tutorial über C#

Edit:
hab da was übersehen
Zitat:
Kreis Kreis1= new Kreis(1,2,3);//Wie bekomm ich das hin

also das was du suchst sind die Konstruktoren


JüTho - Mi 28.10.09 15:45

Ergänzung zu Michaels Antwort: Wenn du es so schreibst, hast du bereits den benötigten Konstruktor mit Argumenten (void wegnehmen):

C#-Quelltext
1:
public Kreis(double r,double x, double y) { ... }                    

Ein Konstruktor ist eine spezielle Methode ohne Rückgabewert; genauer: sie gibt ein Objekt vom eigenen Typ zurück - in deinem Fall eben ein Objekt vom Typ Kreis, also einen bestimmten Kreis. Jürgen


baphumet - Mi 28.10.09 16:00

Danke für eure Hilfe, stimmt ja, void hat dort gar nichts zu suchen, ich bin wirklich Neuling in C#, kenn mich aber mit Java aus und steig da jetzt gerade um.
Ich weiß auch nicht wie ich auf void kam.
Dafür kommen jetzt bei der Compilierung die Fehlermeldung das ich Objektverweis benötige.

Für das nicht statische Feld, der Methode oder Eigenschaft Kreis.r ist ein Objektverweis erforderlich, was muß ich da jetzt genau machen, die Hilfe von VisualStudio hilft mir da nicht. Bei der Methode show genau das gleiche, nur weil ich x,y und r ausgeben lassen will.


EDIT:

Habs doch geschafft, musste bei den Methoden nur static entfernen, alles ok.