was versteht man bei der programmierung unter einer "klasse"?

Oder um es mal ganz banal zu sagen .... ein Klasse ist eine Sammlung von Funktionen...

z.B. Funktionen, die das Arbeiten mit einer Datenbank vereinfachen, bzw. verkürzen

ist aber wirklich stark vereinfacht
 
na wenn, dann schon: eine Sammlung von Funktionen und Eigenschaften ;)
 
eine Sammlung von Funktionen und Eigenschaften
Um diesen Gedanken weiter zu verfolgen:

Ein Klasse KANN etwas und HAT etwas (wie einst mein Professor sagte).

Beispiel:
Wir wollen eine Klasse "Kreis" erstellen.

Was hat denn ein Kreis (Eigenschaften):
- Mittelpunkt ( x, y Koordinate)
- Radius
- Füllfarbe

Und was kann man mit einem Kreis machen (Funktionen):
- Größe ändern (durch Änderung des Radiuses)
- Verschieben (des Mittelpunktes)
- Füllfarbe setzen

Dieses Beispiel in C++:
Code:
class Kreis
{
public:
    void setSize( int neuerRadius);
    void verschiebe( int neueXPosition, int neueYPosition);
    void setzeFarbe( int RGB);

private:
    int x;
    int y;
    int radius;
    int farbe;
}
Wie die einzelnen Funktionen funktionieren wird woanders beschrieben, aber so wird in C++ eine Klasse definiert.
 
Okay, ich will nicht klugscheissen, aber korrekter Weise heißt es in einer Klasse nicht Funktion, sondern Methode. ;)
 
Klassen

klassen sind ein syntaktisches gebilde mit einem namen. sie müssen weder was können noch müssen sie was haben. einige sind nicht mal alleine verwendbar - virtual.
der trick an klassen ist, das sie einen namen besitzen, mit denen man sie wiederverwenden kann. methoden und attribute einer klasse können an andere klassen weitergereicht werden (vererben) und in der zielklasse angepasst (glaube heisst metamorphose) werden.
eine klasse ist eine art benannter beschreibender container die methoden und attribute besitzen kann, die aber nicht in der klasse selber verfügbar sein müssen.
 
Wenn ich mir die Erklärung von Boron angucke, dann seh ich keinen Unterschied zwischen Klasse und Objekt (z.B. ocx-Control)
 
klassen & objekt

eine klasse ist eine beschreibung, ein objekt ist eine instanz einer klasse oder eines moduls etc.
 
@7H3 N4C3R
Da hast du vollkommen recht. Dann müssen wir aber auch von Attributen sprechen und nicht von Eigenschaften.

@JediBiDchie
Auch du hast recht. Aber um jemandem die Funktionsweise von Klassen zu erklären sollte man echt nicht bei abstrakten Klassen anfangen(mit den bekannten Folgen: Vererbung und Polymorphie :D).
Das gibt halo4@SETI[CB] sonst echt den Rest und er will nie, NIE objektorientiert programmieren.
 
Zurück
Oben