Thread Kritik an OOP
(48 answers)
Opened by hlubenow at 2017-07-12 03:18
Wow, ich habe eben gerade was bemerkt, da muß ich gerade mal nachfragen:
Mich hat bei den Klassen immer dieses Code (perl): (dl
)
package EineKlasse; und das Code (perl): (dl
)
package main; gestört, das die Abschnitte trennt. Viel schöner hätte ich es gefunden, wenn man die Klasse einfach in geschweifte Klammern packen könnte. Eben hab' ich das bei meinem Beispielprogramm probiert, und das geht! Code (perl): (dl
)
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 35 36 37 38 39 40 41 42 43 44 45 46 47 #!/usr/bin/perl use warnings; use strict; package Getraenkeautomat { sub new { my $classname = shift; my $self = {bottles_of_cola => 10}; return bless($self, $classname); } sub gibMirEineCola { my $self = shift; if ($self->{bottles_of_cola} > 0) { print "Bitteschoen!\n"; $self->{bottles_of_cola}--; print "Noch $self->{bottles_of_cola} Flaschen Cola uebrig.\n"; } } } package Man { sub new { my $classname = shift; my $self = {thirst => 0}; return bless($self, $classname); } sub sweat { my $self = shift; my $getraenkeautomat = shift; print "Ganz schoene Hitze, ich werde durstiger.\n"; $self->{thirst}++; if ($self->{thirst} > 1) { print "Ich brauche eine Cola!\n"; $getraenkeautomat->gibMirEineCola(); } } } my $getraenkeautomat = Getraenkeautomat->new(); my $user = Man->new(); $user->sweat($getraenkeautomat); $user->sweat($getraenkeautomat); Leider bin ich mir nicht sicher, was die geschweiften Klammern in Perl wirklich bedeuten. (Das kommt ja in Perl von der Shell, und da sind die geschweiften Klammern auch irgendwie merkwürdig.) Also: Geht das so, kann man das so machen? Das wäre ja toll! In "perldoc perlobj" oder "perldoc perlootut" wird das leider nicht so gemacht. Wäre aber doch wirklich schön, oder? Last edited: 2017-07-12 17:39:10 +0200 (CEST) |