AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warum und wann eine Klasse benutzen

Ein Thema von IMPEGA · begonnen am 16. Okt 2013 · letzter Beitrag vom 17. Okt 2013
Thema geschlossen
Seite 1 von 2  1 2      
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
83 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 13:22
Ich habe recht einfache doch zugleich schwere Frage.
Ich programmiere in Delphi schon eine Weile, immer ein bisschen dazu gelernt.
Nun, scheine ich an einen Punkt angelangt zu sein wo mich das Ganze etwas genauer interessiert.
Ich habe nie aus den Büchern gelernt, immer nur gelesen , probiert und mir die Sachen zu Recht gebastelt. Mit dem Verständnis kamen Fragen auf. (Leider habe ich sehr viele Grundbegriffe verschlafen, bzw. ignoriert)

Heutige Frage sind Klassen.
Wie man Sie erstellt weiß ich schon. Ich verstehe auch wie man damit umgehen kann/soll
Meine Frage ist.

Wann ist es sinnvoll die zu benutzen oder grob gesagt, wozu sollte ich Sie benutzen.
Ich schreibe keine große Projekte, bin nur ein Hobby-Programmierer.
Ich habe recht viel über Klassen schon gelesen, so eine Erklärung findet man aber schlecht.
Es wäre nett wenn mich ein Profi aufklären könnte.
Ich brauche nur den Sinn der dahinter steckt.

Geändert von TBx (16. Okt 2013 um 13:29 Uhr) Grund: Threadtitel korrigiert
 
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Warum und wann eine Klssse benutzen

  Alt 16. Okt 2013, 13:32
Das ist ein reichlich großes Faß.
Es nennt sich "Objekt-Orientierte Programmierung" (OOP). Im Kern geht es darum, Grenzen zu ziehen. Zum Einen schon in der Struktur Deines Programmes, zum Anderen in einer klaren Aufgabenteilung und des Weiteren in einer klaren Aufteilung von Informationen - wer wo und wie auf etwas zugreifen darf oder eben nicht.

Hast Du Dir mal einen Artikel über OOP im Allgemeinen durchgelesen? Wenn nicht, solltest Du das jetzt tun - und sei es bei Wikipedia. Danach können wir über diverse Fragen sprechen. Aber das Grundwissen, das Für und Wider, solltest Du Dir selbst aneignen.
Daniel R. Wolf
mit Grüßen aus Hamburg
 
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 13:58
Vielleicht etwas Laien-näher (fällt mir leichter ):

Mit Records kannst Du Daten verwalten und per Programmcode auf diese zugreifen. Hast Du Personendaten mit Geburtsdatum und willst das Alter berechnen musst Du dafür irgendeine (externe) Funktion aufrufen.

Mit Klassen kannst Du Daten und dazugehörigen Code an einer Stelle definieren. Du kannst dann direkt Person.Alter verwenden oder Person.VerheiratenMit(AnderePerson) aufrufen.

Instanzen von Klassen sind Objekte. Die haben Daten und Fähigkeiten und können leicht weitergeben und verarbeitet werden.

Wenn man die gesamte Funktionalität einer Anwendung im Programmcode abbilden will und zur Datenverwaltung lediglich verschiendene Records hätte, wäre das unheimlich kompliziert.

In OOP haben die Objekte sozusagen ein Eigenleben, das man gleich benutzen kann.

So ist z.B. ein Button (auch ein Objekt) in der Lage, sich selbst zu zeichnen und auf einen Klick zu reagieren und ein Timer hat die Fähigkeit, innerhalb bestimmter Zeiten eine Ereignisbehandlung aufzurufen.

Stell Dir vor, Du müsstest bei jeder möglichen Mausaktion den Button gedrückt oder ungedrückt SELBST neu zeichnen oder willst in einer Anwendung ohne TTimer jede Sekunde die Formularfarbe ändern lassen. Das ginge zwar notdürftig, wäre aber EXTREM aufwendig.

Klassen lassen sich auch "vererben". Dadurch kann man von bestehenden Klassen andere Klassen ableiten, die über spezialisierte Eigenschaften verfügen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (16. Okt 2013 um 14:02 Uhr)
 
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 13:59
Als ich mit die selbe Frage gestellt habe (kommt wohl irgendwann bei jedem ) habe ich folgende Vorteile gesehen:

Wichtig: Das Thema Klassen und OOP ist mit den Vorteilen die ich hier nenne bei weitem nicht behandelt, soll Dir nur
einen Anhaltspunkt geben:

- Wiederverwendbarkeit von Code
- Bei Wiederverwendung brauchen Änderungen nur einmal gemacht werden
- Abgrenzung und Trennung von Logik und Oberfläche
- Zwingt zum saubereren Programmieren
- Zugriff und Veränderbarkeit von "Werten" können besser geregelt werden
- Ermöglicht eine bessere Strukturierung und Wartbarkeit des Programms
Philip
 
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 14:03
Wie Daniel schon sagte: OOP ist das Stichwort, wenn du Klassen verstehen willst.

Dahinter steckt (im Großen und Ganzen) weniger eine bestimmte Methode als eine bestimmte Sichtweise auf Programme, ein Programmierparadigma.
Man programmiert nicht nur in Objekt-orientiert, sondern man denkt Objekt-orientiert.

Ein Vorteil für Einsteiger in OOP ist, dass es sich relativ gut eignet um reale Gegenstände zu beschreiben.
Das ist allerdings nur der Anfang; reale Gegenstände reichen nicht aus, auch Konzepte und Verfahren können in Klassen gegossen werden.
Um OOP zu verinnerlichen, solltest du Gedankengänge anderer Programmierer nachvollziehst. Anfangs in Tutorials zu Klassen, dann in Bücher zu OOP* und später Pattern.
Es kann (fast) nie schaden, Code anderer Programmierer zu lesen und sich an Diskussionen zu Lösung von Entwurfs-Problemen in Foren zu beteiligen.

* Adhoc fällt mir da keines ein; vielleicht hat da jemand ein wirklich gutes im Schrank stehen.
 
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 15:21
* Adhoc fällt mir da keines ein; vielleicht hat da jemand ein wirklich gutes im Schrank stehen.
Buch:
http://openbook.galileocomputing.de/oop/

Kurzer Artikel:
http://www.galileocomputing.de/artikel/gp/artikelID-215
 
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 15:25
dann in Bücher zu OOP* und später Pattern.
* Adhoc fällt mir da keines ein; vielleicht hat da jemand ein wirklich gutes im Schrank stehen.
http://openbook.galileocomputing.de/oop/
Das Buch ist Top und es steht sogar im "Neuland" Internet
fork me on Github
 
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
83 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 18:45
Keine Ahnung ob ich meine Frage falsch formuliert habe, oder nicht Jeder es auf mein Art interpretiert hat.

Am besten kann ich mit dem Tip von Darlo umgehen.
Ein Dank eigentlich an Alle beteiligten, TiGü aber besonders, das wäre im Zusammenhang mit anderen Antworten die beste Lösung.

Nun, etwas klarer. Ich weiß was KLassen sind, ich weiß auch was OOP bedeutet.
Die Frage war , was es bringen soll. Nun, Vererbung ist gut und schön, bei kleinen Projekten aber unbedeutend.
Grob gesagt zu jetzigem Zeitpunkt würde ich behaupten. Warum sollte ich mich um den Speicher kümmern, Werte vererben wenn es auch ohne geht.
Natürlich ist mir klar dass es falsch ist. Die Frage war bezogen auf WARUM. Was bringt es in einem "Hallo World" Tool, den Wert einer Box in eine Klasse zu verlagern, verarbeiten und zurück zu geben?
Das ist zwar ein dämliche Beispiel, sollte nur wirklich als Beispiel dienen. Ab wann ist es eben sinnvoll Klassen zu benutzen.
Früher habe ich etwas mehr oder weniger VB.NET programmiert. Da habe ich fast Alles in die Klasse gelegt.
Allerdings nicht weil ich gewusst habe wann es Sinn ergibt, sondern weil es mir immer wieder gesagt wurde, also habe ich es auch getan.
Gelernt wie Klassen funktionieren, wozu die gut sind und Sie genutzt.
Ich programmiere nur Hobbymessing, meine Projekte sind auch meist klein. Trotzdem möchte ich versuchen es richtig zu machen. Viel mehr geht es eigentlich um mein Verständnis für die Sache.

Leider habe ich in den ganzen Antworten nicht die meine Antwort gefunden. Ich schaue mir die Bücher an, mal schauen was dabei raus kommt.
Dank geht an Alle beteiligten.
 
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 19:04
Du meinst also etwas wie: "Warum Datenverwaltung in Klassen?"

Das muss nicht unbedingt sein. Es kann Vorteile bringen, um den Quelltext übersichtlich zu strukturieren.
Man kann eben die Daten gut kapseln und über Objektzuweisungen flexibel damit arbeiten.
Die Objekte "leben" so lange bis sie wieder zerstört werden. Man kann auf sie mehrfach zugreifen oder sie z.B. in Listen leicht verschieben.

Records sind zwar ähnlich, aber i.d.R. etwas umständlicher im Handling.

Wenn Du in einem kleinen Projekt nur 20 Variablen brauchst, dann kannst Du sie natürlich ohne Weiteres auch einfach in einer Unit definieren.
Wenn das Projekt größer wird und z.B. unterschiedliche Formen der Datenspeicherung ermöglichen soll, ist man mit einer Klasse übersichtlicher dabei.

(Habe ich Dich jetzt besser verstanden?)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
 
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Warum und wann eine Klasse benutzen

  Alt 16. Okt 2013, 20:54
Was bringt es in einem "Hallo World" Tool, den Wert einer Box in eine Klasse zu verlagern, verarbeiten und zurück zu geben?
Nichts. Mit anderen Worten: Wenn du nur "Hallo World" Tools schreiben willst, brauchst du dich um Klassen nicht zu kümmern. Möchtest du allerdings eines schönen Tages eine etwas komplexere Anwendung, die gut erweiter- und wartbar sein soll, entwickeln, wäre es schon angebracht, entsprechende Klassen zu entwickeln. Ich benutze z.B. zur Verarbeiten der Daten aus einer Datenbank grundsätzlich eine Klasse in einer eigenen Unit. Damit schreibe ich meine Datenbankanwendungen weitaus schneller und übersichtlicher. Auch bei Grafik-Anwendungen empfiehlt es sich, eine Klasse zu entwickeln, die alle benötigten Methoden zur Verfügung stellt. Wenn ich z.B. eine komplexe Grafik-Ausgabe entwickle, der ich den jeweiligen Canvas als Parameter mitgebe, kann ich diese Methode ebenso für die Bildschirm- wie für die Druckerausgabe verwenden.

Ansonsten schließe ich mich der Ansicht Daniels an, wonach es auf diese doch eher allgemeine Frage keine konkretere Antwort geben kann als: Lese dich ein in OOP und Klassendesign.
 
Thema geschlossen
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 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-2025 by Thomas Breitkreuz