Objektorientierte Programmierung?

Hallo,
ich entwickle schon seit einiger Zeit nicht objektorientiert Software.
Da ich jetzt demnächst mit VB 6.0 und .NET + C# entwickeln,
will ich mich mit einem ganz kleinen Projektchen an das objektorientierte rantasten. Dazu will ich eine ganz kleine Testanwendung erstellen. Wer hat oder weiß eine kleine Testaufgabe mit Lösung und Erklärung oder weiß wie ich mich dem Thema nähern kann. In der Theorie habe ich mich bereits damit auseinandergesetzt, aber eben der Bezug zur Praxis oder die Umsetzung in die Praxis fehlt mir.

Danke für jede Hilfe!

Grüße
Carolin

Hallo Carolin,

das Thema interessiert mich auch, nur habe ich noch keine Ahnung davon. Ich denke, daß sich das am Samstag ändert, klick mal zum Spaß auf ‚Expertenchat‘ :wink:

Gruß, Rainer

Hallo,

nimm doch etwas einfaches, wie z.B. einen Taschenrechner. Da kannst du ganz einfach anfangen und immer erweitern. Außerdem hast du dann gleich ein schönes Weihnachtsgeschenk.

Eine UML dazu kann ich dir schicken.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hört sich gut an, Danke!
Was heißt eine UML kannst du mir schicken?

Grüße
Caro

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

etwas off-topic
hi Carolin

also, vb und objektorientiert im selben atemzug zu nennen, ist etwas verwegen. vb nutzt zwar objekte, hat aber mit objektorientierung nur am rande zu tun. dafür fehlen einfach die meisten der programmierkonzepte der oop (vererbung, polymorphismus, etc.).

aber c# ist schon ok…

erwin

Hallo,

ich hab’s ja immer gerne, wenn ich was visualisieren kann, was ich mache. Für die OOP bieten sich da doch grafische Objekte an. Man kann damit schöne hierarchische Modelle basteln (Vererbung usw.) und man sieht eben die Eigenschaften (Form, Farbe, Beweglichkeit, Reaktion auf Nachbarschaft usw…) eben gleich am Monitor. Mit diesen Objekten kann man eine kleine wuselig-lebendige Welt im Computer zaubern. Als Biologe denke ich da natürlich an kleine „Ökosysteme“ mit Räubern und Beute usw, aber da sind deiner Phantasie ja keine Grenzen gesetzt.

Grüße
Jochen

Hallo an dieser Stelle.

Hört sich gut an, Danke!
Was heißt eine UML kannst du mir schicken?

Das wird wohl heissen, dass er Dir eine .xmi (oder ?) Datei schicken wird, die man dann in ein Programm zur UML Modellierung importieren kann.
Hier noch ein paar Resourcen: http://www.uml.org & http://www.jeckle.de/files/umltutorial.pdf & ‚Der Entwickler‘ 01/2006
unter http://www.entwickler-magazin.de/zonen/magazine/psec…

HTH
mfg M.L.

1 Like

Hallo,

Mit diesen Objekten kann man
eine kleine wuselig-lebendige Welt im Computer zaubern. Als
Biologe denke ich da natürlich an kleine „Ökosysteme“ mit
Räubern und Beute usw, aber da sind deiner Phantasie ja keine
Grenzen gesetzt.

Da gibts etwas nettes, was man recht leicht implementieren kann, das „iterated prisoners dilemma“ http://de.wikipedia.org/wiki/Gefangenendilemma

Kann ich sehr empfehlen: ein paar einfache Stratigien programmieren, gegeneinander antreten lassen, die Populationen/Punkte grafisch darstellen.

Nicht zu kompliziert für einen Anfänger, aber recht gut O-O gegeinet.

Grüße,
Moritz

Hallo
Na, da nimmst du einfach die Online-Hilfe. Ohne kann man sowieso nicht weiter. Diese Hilfe ist gut(auf CD).
In VB ist alles objektorientiert. Ich könnte auch sagen, da kommst Du von ganz alleine rein, ohne Probleme.
Normalerweise treibt man es nur so weit wie nötig oder soweit wie praktisch mit der objektorientierten Programmierung.
Möchte man zum Beispiel Active-X Controls erstellen, muß man genauer planen, und alle notwendigen Ereignisse, Variablen, Methoden , Funktionsaufrufe, eben Eigenschaften des Objekts exportieren, bzw., aufführen.
Ich sehe da aber keine größeren Schwierigkeiten.
Es soll sogar anders herum sein, indem zum Beispiel die Wiederverwendbarkeit von Code durch Verwendung von Objekten verbessert wird.

Das einfachste Objekt ist dabei das Datenobjekt:
Ein selbstdefiniertes Objekt „ixyps“ enthält zwei Variablen: x und y.
Die können später mit ixyps.x bzw. mit ixyps.y bezeichnet werden.
Das praktische ist dabei die Unterstützung durch die IDE:
Man gibt ixyps. ein, und sofort stehen da möglichen enthaltenen Variablen.

Da gibt es dann aber noch eine Vielzahl weiterer möglicher Objekte:
Codemodule, Formulare, Klassenmodule, Controls usw…
Die haben dann außer Variablen noch Methoden, Ereignisse, Properties und was weiß ich noch alles.
Mein Vorschlag: Geh einfach unbedarft in die Materie und schreibe noch mal, wenn eine bestimmte Frage auftaucht, am besten unter VB. Hier wimmelt es nämlich von C-Fanatikern.

MfG
Matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich entwickle schon seit einiger Zeit nicht
objektorientiert Software.

Darf man fragen, - in welcher Sprache und
welche Art von Programmen?

Da ich jetzt demnächst mit VB 6.0 und .NET + C# entwickeln,

Da hast Du Dir aber recht viel vorgenommen,
wenn das bedeutet, VB(6?).NET und C#.NET
gleichzeitig neu einzuführen.

will ich mich mit einem ganz kleinen Projektchen an das
objektorientierte rantasten. Dazu will ich eine ganz kleine
Testanwendung erstellen.

Ich würde das mit „objektorientiert“ am Anfang völlig
aussen vor lassen. Damit fängt man (imho) erst an,
wenn man mit der Sprache selbst und ihren Werkzeugen
so zurande kommt, dass man damit gerade etwas mehr
Nutzen als Schaden anrichtet. Ist die Sprache einiger-
massen verinnerlicht, kann man versuchen, damit
neue Konzepte (Objektorientierung, Interfaces …)
zu modellieren.

Wer hat oder weiß eine kleine Testaufgabe mit
Lösung und Erklärung oder weiß wie ich mich
dem Thema nähern kann. In der Theorie habe ich mich bereits
damit auseinandergesetzt, aber eben der Bezug zur Praxis oder
die Umsetzung in die Praxis fehlt mir.

Je nach dem, was Du vorher gemacht hast - nimm genau so
ein Problem, welches Dir schon gut vertraut ist - und
bilde es in C# nach. Dafür wirst Du erfahrungsgemäß eine
Weile brauchen :wink:

Nebenbei liest Du Dich in einschlägige Bücher ein
und programmierst die dortigen Beispiele nach,
meine Empfehlung (bei Programmierer-Vorkenntnissen):
Zuerst: http://www.amazon.com/gp/product/1590594193/
Dann: http://www.amazon.com/gp/product/0596003471/

Nach dem harten Einarbeitungsjahr wirst Du
„problemorientiert“ arbeiten, das kann „objekt-
orientiert“ sein oder auch nicht, aber es wird
„interfaceorientiert“ sein :wink:

Viele Grüße

CMБ

Fanatiker und Sprachkultur (OT)
Hallo,

Hier wimmelt es nämlich von C-Fanatikern.

Oder noch besser: „Perl-Fanatiker“ :wink:

Hehe! -->
[ — 8
/;{}def/#{def}def/$_={/Times-Bold exch selectfont}#/_{rmoveto}#/"{dup}#/*/!/$
;/q{exch}#/x ; {/J q #}#/.{/T q #}#{stringwidth}#{}#{}# 14 string dup dup dup
260 40 moveto 90 rotate ; %/}};$0=’"\e[7m \e[0m"’;@ARGV=split//,reverse
q(ThePerl). q(Journal) x 220 ; q ; 0 T putinterval exch 7 J putinterval ;
; $_= q /m$ pop T($*!$"=!$ " )pop " * true% ? $ " $!" " !! !! % !" !" !
! charpath {!"""}pop $ pop{""!}pop ! neg{!#}pop 220 ! neg _{!!}pop J false %T
charpath clip " pop 0 " moveto 6{!!}pop $_= 105{!!}pop {$ ! $ " ! #! ##}
pop{dup dup $ ! " pop pop q{"}pop 22{dup show}repeat {"}pop q 22 mul{$ „} pop
neg{!#! $ „}pop ! 8 .65 mul{$ # # $}pop ! neg{“}pop _ pop{“}pop } repeat pop
" { $ " ! ! ! $ " ! !" „#“ #"!"""""! #" " # „m/;@ARGV=(@ARGV[-14…-1])x50;q}
0 „%};s/m[ou]|[-\dA-ln-z.\n_{}]|$_=//gx;s/(.)(?{$*=’’})/(’$*.=’.(++$#
%2?’’:“$0;“).‚pop;‘)x(ord($1)-31).’$*’/gee;s/((.(\e[.m)*|.){77})/$1\n/g;print
; sub showpage {}
Wenn ich das mal verstanden habe, werde ich
wahrscheinlich vor Freude 10 cm. über dem Boden
schweben (das ist eine Postscript-Ausgabe(!) und ein
Perl-Programm mit Textausgabe im selben Text :wink:

(Quelle: OPC/2000, best_ever)

Viele Grüße

CMБ

Hi,

Oder noch besser: „Perl-Fanatiker“ :wink:

Hehe! -->
[ — 8
/;{}def/#{def}def/$_={/Times-Bold exch
selectfont}#/_{rmoveto}#/"{dup}#/*/!/$
;/q{exch}#/x ; {/J q #}#/.{/T q #}#{stringwidth}#{}#{}# 14
string dup dup dup
260 40 moveto 90 rotate ; %/}};$0=’"\e[7m
\e[0m"’;@ARGV=split//,reverse
q(ThePerl). q(Journal) x 220 ; q ; 0 T putinterval exch 7 J
putinterval ;
; $_= q /m$ pop T($*!$"=!$ " )pop " * true% ? $ " $!" " !!
!! % !" !" !
! charpath {!"""}pop $ pop{""!}pop ! neg{!#}pop 220 ! neg
_{!!}pop J false %T
charpath clip " pop 0 " moveto 6{!!}pop $_= 105{!!}pop {$ ! $
" ! #! ##}
pop{dup dup $ ! " pop pop q{"}pop 22{dup show}repeat {"}pop q
22 mul{$ „} pop
neg{!#! $ „}pop ! 8 .65 mul{$ # # $}pop ! neg{“}pop _
pop{“}pop } repeat pop
" { $ " ! ! ! $ " ! !" „#“ #"!"""""! #" " #
„m/;@ARGV=(@ARGV[-14…-1])x50;q}
0
„%};s/m[ou]|[-\dA-ln-z.\n_{}]|$_=//gx;s/(.)(?{$*=’’})/(’$*.=’.(++$#
%2?’’:“$0;“).‚pop;‘)x(ord($1)-31).’$*’/gee;s/((.(\e[.m)*|.){77})/$1\n/g;print
; sub showpage {}
Wenn ich das mal verstanden habe, werde ich
wahrscheinlich vor Freude 10 cm. über dem Boden
schweben (das ist eine Postscript-Ausgabe(!) und ein
Perl-Programm mit Textausgabe im selben Text :wink:

(Quelle: OPC/2000, best_ever)

kann ich mir vor stellen, daß Du dann abhebst. :wink:

Gut, daß Du verraten hast, daß das ein Quellcode ist, ich hätte es für Ascii-Art gehalten. :wink: Was ich sonst darüber denke, verrate ich besser nicht. :wink:

Gruß, Rainer