Programmierfragen



  • Huhu,

    hab da mal ein paar Fragen:
    1.

    abstract class T1{
    int z1=1;
    }
    class T2 : T1{
    int z1=2;
    }
    class T3 : T2{
    int z1=3;
    }
    

    Auf welche Attribute z1 darf aus den Methoden der Klasse T3 zugegriffen
    werden?

    Außerdem welche Operationen sind in Methoden einer generischen
    Klasse zwischen Attributen, welche diesen generischen Typ besitzen, möglich?
    Und ist es möglich, in einem Array Objekte verschiedener Klassen abzulegen?
    Wäre nett wenn ihr mir diese beantworten könntet.



  • Schreib das nächste mal bitte nur "Fragen". "Programmierfragen" ist schon etwas zu spezifisch für eine Überschrift.



  • ok,mach ich.Bräuchte nun nur noch die ANtworten auf meine Fragen 😛
    Wär echt lieb



  • Auf welche Attribute z1 darf aus den Methoden der Klasse T3 zugegri en
    werden?

    Alle Instanzvariablen (nicht Attribute) sind bei dir privat. T3 kennt nur seine eigene "z1" (diese ist dann 3) und beeinflusst nicht die der Objekte, von deren Klassen geerbt wurde.

    Außerdem welche Operationen sind in Methoden einer generischen
    Klasse zwischen Attributen, welche diesen generischen Typ besitzen, möglich?

    Ähhh, nochmal in deutsch, bitte! Generische Typen werden zur Compilerzeit gegen "echte" ausgetauscht. Wenn die Operationen nicht möglich sind wirds schon knallen, sonst kannst du auch mit Ausdrücken wie

    where T : xclass
    

    angeben, dass dein generischer Typ von einer Klasse (xclass) ableiten muss, der dann auch von dir verlangte Operationen unterstützt, oder von seinen Erben verlangt, diese zu implementieren.

    Und ist es moglich, in einem Array Objekte verschiedener Klassen abzulegen?

    Klar:

    var myArray = new Object[] {new ClassA(), new ClassB(), new ClassC(), new ClassD(), "und sogar nen String geht hier rein, back dir nen Eis, ey, oder freu dir nen Keks!"};
    


  • So erstmal danke 🙂
    Aber bei meiner 2. Frage wollte ich wissen welche der folgenden Operationen sind in Methoden einer generischen
    Klasse zwischen Attributen, welche diesen generischen Typ besitzen, möglich?
    -Arithmetische Operationen z.B. +, -, * , /
    -Vergleichsoperationen z.B. <, >, ==, !=
    -Der Zuweisungsoperator =
    -Logische Operationen z.B. ||, && ???

    Und da ist ja anscheinend möglich ist in einem Array Objekte verschiedener Klasse abzulegen, wie ist das nun genau möglich?
    -durch Verwendung generischer Klassen
    -durch Vererbung speziell Polymorphie
    -durch Verwendung von Schnittstellen
    -durch Verwendung von abstrakten Klassen
    -durch Verwendung von statischen Klassen



  • Bei generischen Methoden in C# werden nur Methoden unterstützt, keine Operatoren (wie in C++ bei templates) - bezogen auf den generischen Datentypen natürlich!

    Und Objekte von verschiedenen Klassen in einem Array o.ä ablegen geht entweder
    - generisch mit List<Object> oder List<IInterface> oder List<baseclass>
    oder
    - untypisiert mit z.B.
    Object[], IInterface[] oder baseclass[]

    Nur statische Klassen geht nicht, da man davon ja keine Objekte erzeugen kann.



  • Also ist von meiner ersten Frage keines der folgenden Dinge richtig:
    -Arithmetische Operationen z.B. +, -, * , /
    -Vergleichsoperationen z.B. <, >, ==, !=
    -Der Zuweisungsoperator =
    -Logische Operationen z.B. ||, &&

    und bei meiner 2. Frage diese alle:

    -durch Verwendung generischer Klassen
    -durch Vererbung speziell Polymorphie
    -durch Verwendung von Schnittstellen
    -durch Verwendung von abstrakten Klassen

    Hab ich das jetzt richtig verstanden?



  • na wenn du nicht von der Martin Luther-Uni aus OOP bist 😛 für sowas gibts doch ein hausaufgabenforum oder?
    tz tz tz



  • naja ich persönlich nicht, aber von dem ich die Aufgaben kriege ja 😉
    Aber welches hausaufgabenforum meinst du?
    meinst du das von studip?



  • genau das meine ich.
    aber was machst du mit den aufgaben?



  • Naja ich interessiere mich auch dafür, und versuche die Aufgaben auch mit zu machen.Belege dann vielleicht auch nen Informatik-Studiengang.


Anmelden zum Antworten