Thread Ein paar Fragen zur Objektorientierung (4 answers)
Opened by Sven_123 at 2011-03-17 11:24

hlubenow
 2011-04-02 15:39
#147313 #147313
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
2011-03-17T10:24:05 Sven_123
Zum Einstieg wollte ich einen kleinen Würfel erschaffen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
class wuerfel{
 has $.augen is rw;
 method anschubsen{
  $.augen = (20.rand+0.5).round;
 }
}

my $drachentoeter = wuerfel.new;
$drachentoeter.anschubsen;
say $drachentoeter.augen;

Ugh, sieht für meine Begriffe immer noch sehr wenig intuitiv aus.
Im Verhältnis zu Python (2.x) meine ich:
Code (python): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python
# coding: iso-8859-1

import random

class Wuerfel:

    def __init__(self):
        self.augen = None

    def anschubsen(self):
        self.augen = random.randrange(20) + 1

drachentoeter = Wuerfel()
drachentoeter.anschubsen()
print drachentoeter.augen

Das einzige, was man dabei wissen muß, ist, daß bei Instantiierung eines Objekts ("drachentoeter = Wuerfel()") automatisch die Funktion "__init__" in der Klasse aufgerufen wird, wobei "def" das Schlüsselwort für Funktionen ist (wie "sub" in Perl, bzw. hier offenbar "method").
Der Rest ergibt sich mehr oder weniger.

"$!augen = ...": Sowas versteht doch kein Mensch, jedenfalls nicht auf Anhieb, und nötig ist es offensichtlich auch nicht.

Nachdem es nun schon so lange Python gibt, sollte man eigentlich erwarten dürfen, daß die Dinge endlich auch in Perl 6 einfacher werden. Werden sie aber offenbar leider nicht. Schade.

Gruß
Last edited: 2011-04-02 15:43:56 +0200 (CEST)

View full thread Ein paar Fragen zur Objektorientierung