
Und daß die Syntax umständlicher erscheint, ist nur die Gewohnheit (und das sage ich aus eigener Erfahrung, ich habe OOP früher gehaßt). Irgendwann wirst Du es total beschissen finden, immer so eine dumme ID als Parameter zu übergeben

Code: Alles auswählen
// JavaScript
var text="Suchen";
var index=text.indexOf("e");
; PureBasic
Define text.s="Suchen"
Define index=FindString(text, "e", 1)
Code: Alles auswählen
// JavaScript
window.document.forms[0].eingabefeld.text="OOPvsPP";
; PureBasic
SetGadgetText(#eingabefeld, "OOPvsPP")
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
ZeHa erwähnte es bereits:AND51 hat geschrieben:Ich würde gern mal ein gutes Beispiel sehen, möglichst eines, dass ich
auch verstehe.
im Klartext: Wenn Du beispielsweise eine Datei lesend öffnen willst, soZeHa hat geschrieben:Irgendwann wirst Du es total beschissen finden, immer so eine dumme ID als Parameter zu übergeben
Code: Alles auswählen
Dim sw As StreamWriter = File.CreateText(path)
sw.WriteLine("Feel")
sw.WriteLine("the")
sw.WriteLine("pure")
sw.WriteLine("power")
sw.Close()
Code: Alles auswählen
Dim sw As myStreamWriter = File.CreateText(path)
[...]
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Nein, das ist etwas völlig anderes. Es ist aber nicht leicht, das zu erklären, ich versuch es trotzdem mal. Stell Dir vor, Du schreibst ein Spiel. Dann erstellst Du verschiedene Objekte, z.B. einen Spieler, eine Map, ein Item, eine Inventarliste, usw., und all diese Objekte haben eigene Methoden, sprich, eigene Funktionen, die nur auf dieses Objekt zutreffen. Zum Beispiel kann der Spieler sterben, Energie verlieren, ein Leben bekommen, laufen, springen, sich verwandeln, die Map kann man laden, anzeigen, erweitern, usw., und genau diese Methoden sind eng mit dem Objekt verknüpft. Das heißt, Du rufst dann map.load() auf und player.kill(), und nicht LoadMap(#number) und KillPlayer(#id). Das mag jetzt wieder rein nach Syntax aussehen, ist es aber nicht. Du kannst nämlich von jedem Objekt-Typ (Klasse) weitere, neue Typen ableiten. Zum Beispiel leitest Du den Player von einem "Wesen" ab, und von diesem Wesen leitest Du aber auch sämtliche Gegner ab. Jetzt haben Spieler und Gegner zum Teil natürlich unterschiedliche Eigenschaften und Methoden, aber im Kern haben sie auch viel gemeinsam. Und hierbei hast Du jetzt z.B. auch wieder den Vorteil, daß Du eine Liste von "Wesen" haben kannst, in der Du sowohl Spieler als auch Gegner speichern kannst, und dann über die gesamte Liste iterieren kannst und alle sterben lassen kannst, weil alle ein "Wesen" sind, das sterben kann. Das ist mal nur eines von vielen Beispielen. Und auch das ist in PB möglich, allerdings längst nicht so komfortabel und sicher wie in einer Sprache, die OOP direkt unterstützt.Klingt praktisch, ist das in PP dasselbe wie Macros?
Mh, das ist schwer zu vergleichen, weil es einfach generell eine andere Art der Programmierung ist, und auch der Scope dieser Methoden sich immer verändert/je nach Methode/Objekt/Kapselung.AND51 hat geschrieben:Klingt praktisch, ist das in PP dasselbe wie Macros?
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End