Announcement

Collapse
No announcement yet.

Nur auf bestimmte klassen zugreifen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nur auf bestimmte klassen zugreifen

    Hallo Leute,

    Ich hab mich hier grade neu registriert und programmiere auch erst seit ca. 1.5 Wochen mit C#. Habe davor aber schon Actionscript 3 programmiert... bin also kein blutiger anfänger mehr

    Hier auch meine erste Frage:
    Ich hab mir ein Klasse Personen mit ein paar eigenschaften(name, alter...) erstellt. Dann hab ich noch zwei Klassen erstellt, jede stellt einen Beruf dar und enthält z. B. gehalt...
    Ich müsste also wenn ich einem Polizisten eigenschaften zuteilen will schreiben:

    PHP Code:
            private void Form1_Load(object senderEventArgs e)
            {
                
    Person p1 = new Person name "Heinrich"alter 32beruf "polizist" };


                
    Polizist pol = new Polizist name "Ludwig"alter 28beruf "polizist"gehalt 3500waffe "Pistole" };
           
            }

            public class 
    Person
            
    {
                public 
    string name;
                public 
    int alter;

                public 
    string beruf;
            }

                public class 
    Polizist Person
                
    {
                    public 
    double gehalt;
                    public 
    string waffe;
                }

                public class 
    Lehrer Person
                
    {
                    public 
    double gehalt;
                    public 
    string[] fächer;
                }
            } 
    Ich muss also immer Polizist.gehalt = ... schreiben. Ich will ja aber dass meine Person ein Polizist ist, und deshalb will ich schreiben können:

    PHP Code:
    Person.Beruf.Polizist.gehalt 3500,00 
    Ist das möglich? Probiert habe ich bereits, einfach in der Klasse Personen die anderen Klassen zu definieren, hat aber auch nicht geklappt...

    Dann hätte ich noch eine Frage, nämlich ob es möglich ist dass jeder Mensch nur einen Beruf haben kann. Wenn eine Person beispielsweise den Beruf Lehrer zugeteilt bekommt, soll man nur auf
    Person.Beruf.Lehrer
    zugreifen können, aber nicht auf
    Person.Beruf.Polizist...
    Ich hoffe ihr wisst was ich meine

    Hoffe jemand weiss da eine Lösung,
    und danke schonmal im vorraus
    Zuletzt editiert von Timyy; 03.03.2011, 19:21.

  • #2
    Membervariablen sollten niemals public sein. Zugriff über Getter/Setter/Properties.


    Code:
    public class Person
    {
    public string name;
    public int alter;
    public Beruf beruf;
    }

    Code:
     
    public abstract class Beruf
    {
    public double gehalt;
    }
    Code:
     
    public class Lehrer : Beruf
    {
    public string[] fächer;
    }
    Code:
    public class Polizist :Beruf
    {
    public string waffe;
    }

    Person person=new Person();
    person.beruf=new Polizist();
    person.beruf.gehalt=2000;
    ((Polizist)person.beruf).waffe="ff";

    EDIT:

    Habe das nicht ausprobiert, sondern nur so mal hier getippt...
    Zuletzt editiert von Christian Marquardt; 03.03.2011, 21:15.
    Christian

    Comment


    • #3
      Super,

      klappt perfekt

      Danke

      Comment

      Working...
      X