![]() |
Wie OOP lernen ?
Hi,
also ich habe letztens mal mit Hilfe eines Freundes "richtig" OOP programmiert. Das hat mir Spaß gemacht und ich glaube es bringt noch mehr als Spaß ^^ Die Frage ist : Wie lernt man OOP am besten ? Wahrscheinlich wird mir zumindest einmal gesagt "Learning by doing". Ok aber welches Art von Programm eigenet sich da am besten für den Anfang ? |
Re: Wie OOP lernen ?
Der beste Weg ist learning by doing. :mrgreen:
Im Ernst, da es sich bei OOP um einen Programmieransatz handelt (quasi eine Strategie) ist IMHO jedes Projekt dafür geeignet. Bei extrem kleinen, übersichtlichen Projekten muss es nicht unbedingt effizient sein (der Aufwand mag dann größer sein als gerechtfertigt), aber funktionieren wird es auf jeden Fall. Und wann immer du mit der VCL arbeitest, ist das ja im Prinzip schon OOP. Ein gutes Kapitel in der OH für den Anfang wäre auch mit Sicherheit Vererbung. Viel Spaß und Erfolg bei dem Ganzen. |
Re: Wie OOP lernen ?
Vieleicht hilft ja das Klassen-Tutorial:
![]() |
Re: Wie OOP lernen ?
Ok danke Luckie. Ich schau mir deine Tutorials mal morgen an.
Mein Problem ist das man in OOP alles so relativ programmieren muss :mrgreen: |
Re: Wie OOP lernen ?
Zitat:
OOP ist nicht so schwer wenn man sich daran gewöhnt hat. ;) Im Grunde mache ich es immer so: Alles ist ein "objekt". Das hat seine Eigenschaften, die des Objekt beschrieben, und auch Methoden, die diese Eigenschaften verändern. Das sind die Schnittschtellen nach "aussen". Aussen ist alles was nicht zum Objekt gehört. Wenn es 2 verschiedene Objekten gibt die miteinander "interakten" müssen, dann definierst du ein weiteres Objekt die dies macht. :) |
Re: Wie OOP lernen ?
Also nachdem ich den Thread "OOP und RPG" gelesen hab, hab ich auch mal alleine was angefangen. So als Grundgerüst finde ichs schon sehr gut. Da ich mit DelphiX arbeite habe ich mal eine Klasse von TImageSprite abgeleitet. Ich wollte jetzt die Create Methode überschreiben weil ich in beim Createn noch das Bild des Sprites direkt übergeben wollte. Nur wenn ich override benutze dann müssen die Parameter bei dem Constructor genauso sein wie die vom Parent. Das wusste ich schon. Früher hab ich dann noch einen Constructor namens TKlasse.ACreate hinzugefügt die dann alle Parameter hatte die ich wollte. Aber das war halt unschön. Und dann habe ich mir mal die Unit von DelphiX angeschaut wo TSprite definiert ist. Und da ist die Create Methode virtual; Und ich hab mir gedacht : Der Constructor hat auch andere Parameter als der vom normalen TObject und ist damit auch überschrieben. So dann hab ich halt auch ne Klasse abgeleitet von TImageSprite :
Delphi-Quellcode:
type
TRPGSprite = class(TImageSprite) private public constructor Create(AParent: TSprite; SImage: TPictureCollectionItem); virtual; end; Zitat:
und dann bekomme ich diese Warnung. Also es funktioniert alles perfekt. Ist die Warnung berechtigt ? Und ich sehe virtual im Moment als eine flexibles override mit dem ich sogar neue Parameter hinzufügen kann. Also ich habe jetzt erfahren das man das so machen muss :
Delphi-Quellcode:
auch wenn ich den Begriff reintroduce noch nie gehört hab - es funktioniert :)
type
TRPGSprite = class(TImageSprite) private public constructor Create(AParent: TSprite; SImage: TPictureCollectionItem); reintroduce; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz