Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Was ist eine Klasse

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.06.2003, 14:44 Uhr
~Steffen
Gast


Hallo

Mein Vortrag hat sich doch um 1 tag verschoben...

Ihr müsst es euch so vorstellen...

Meine Klassenkamaraden verstehen von nichts... und ich muss denen halt erklären können. Was eine Klasse ist...

Ich wäre euch wirklich sehr dankbar wenn ihr es mir deutlich erklären könntet
Wo die Vorteile liegen?
Und wozu man das braucht?
Mfg
Steffen ;-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.06.2003, 14:52 Uhr
~bussibär
Gast


man braucht es für die Objektorientierung, jede klasse ist ein objekt.

eine klasse kann man sich vorstellen wie z.B. einen Menschen:

Er hat Attribute wie Größe, Gewicht, Haarfarbe, Alter, Name,...

Und Methoden wie essen, trinken, usw.

Und dass alles ist eben in einer Klasse zusammengefasst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.06.2003, 14:53 Uhr
~Steffen
Gast


Achso....

Was ist eine Attribute
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.06.2003, 15:01 Uhr
ao

(Operator)



Zitat:
~Steffen postete
Mein Vortrag hat sich doch um 1 tag verschoben...


Heißt das, du hast jetzt doch Zeit bis morgen? Dann schlage ich vor, du rennst schleunigst in die nächste Bücherei, leihst dir ein oder zwei einführende Bücher über objektorientiertes Programmieren aus und verbringst den Rest des Tages mit Lesen. Dann besteht eine gewisse Chance, daß du bis morgen so viel begriffen hast, daß du ein paar Antworten geben kannst.

Zitat:

Ich wäre euch wirklich sehr dankbar wenn ihr es mir deutlich erklären könntet
Wo die Vorteile liegen? Und wozu man das braucht?


Das hat Spacelord in deinem letzten Thread schon angerissen. Das Thema ist wirklich umfangreich, das kann man nicht mal so eben beschreiben. In dem Stadium, in dem du jetzt zu sein scheinst, wirft jede Erkenntnis mindestens zwei neue Fragen auf. Besorg dir Bücher. Oder such im Internet nach Einführungen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.06.2003, 15:05 Uhr
ao

(Operator)



Zitat:
ich postete
In dem Stadium, in dem du jetzt zu sein scheinst, wirft jede Erkenntnis mindestens zwei neue Fragen auf.




Zitat:
~Steffen postete fast gleichzeitig
Was ist eine Attribute



... ich sags doch.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.06.2003, 15:08 Uhr
~darthvader
Gast


attribute sind eigenschaften.

und methoden eben aktionen die beim aufruf gemacht werden, wie eben essen & trinken usw.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.06.2003, 15:19 Uhr
Pablo
Supertux
(Operator)


Was eine Klasse ist? Du kannste s einfach erkären.
Eine Klasse ist eine Menge von Attributen (Member Variablen) und Methoden (member Functions).
es gibt nicht nur die eingebaute Datentypen wie int, long, char, usw. In C und selbsverständlich in C++ kannst du deine eigene Datentypen definieren, die nach deinem Geschmack funktionieren. In C kannst du nur Datentypen definieren, in C++ sind sie Klassen, weil du neben den Member Varibalen auch Funktionen deklarieren kannst, die als Bestandteil eines Datentyps gelten.

Wenn du Objekte brauchst, oder wenn du Objekte modellieren willst, dann lohnt es sich eine Klasse zu bauen. Zum Beispiel, du willst ein Programm schreiben, welches ein Luftballon simulliert

Du erzeugst die Klasse Luftballon. Welche Attributen (Eigenschaften) soll ein solcher Luftballon haben?
1. Farbe
2. Grösse
3. Radius
4. Zustand (fliegend, fallend, liegend {wenn auf dem Boden liegt}
5. X Coord.
6. Y Coord.
7. Z Coord (wenn du dich im R^3 befindest)
All diese Attributen kannst du mit einfachen Variablen modellieren.
Welche Methoden (Aktion, Tätigkeit)?
1. fliegen
2. fallen
3. explodieren
4. liegen

Also wie macht dann das.

C++:
// luftballon.h
class Luftballon
{
    public: // alle soll jetzt offen sein
    int farbe, groesse, radius, zustand, x, y;

  // Konstruktoren
  Luftballon();
  // Destruktoren
  ~Luftballon(); // nicht immer notwendig
  // Methoden
  void fliegen();
  void fallen();
  void explodieren();
  void liegen();
}:


Das ist eine einfache Definition eiiner Klasse. Der Konstruktor sorgt dafür, dass die Member Variablen vmit Standard-Values initialisieren werden, wenn du sie programmierst, sonst sagt nur, dass es eine Klasse geben muss. Ein Destruktor macht das Gegenteil, aber es ist nicht notwendig. In diesem Fall sind alle Attributen und Methoden im globalen Gültigkeitsbereich der Klasse, d.h, dass Objete dieser Klasse können auf diese zugreifen. Es gibt viele Methoden und Attribute, die als private deklariert sind, damit man sie nicht benutzen kann. Meistens kann man auf sie zugreifen, indem der Programmier der Klasse eine öffentliche Methode einfügt, die auf diese Variable zugreifen kann.

Wenn man die Methoden schreiben will, muss man entweder eine neue cpp Datei öffnen und weiter verarbeiten, man kann jedoch in der selbe Datei machen. Normalerweise deklariert man die Klassen in den .h Dateien und den Code in de .cpp Date. Gehen wir davon aus, dass Luftballon in der Datei luftballon.h sich befindet.

C++:
// luftballon.cpp
#include "luftballon.h"
Luftballon::Luftballon()
{
  // Konstruktor
  farbe  = 4;
  groese = 4;
  radius = 30;
  zustand = 0; // 0 = liegen, 1 = fliegend, ...
  X = 0;
  Y = 0;
  Z = 0;
}
void Luftballon::fliegen()
{
  // hier code... je nach Implementation unterschiedlich
}



In einer anderen cpp oder da selbst kannst du dann ein Objekt von Typ Luftballon machen.

C++:
// main.cpp
#include "luftballon.h"

int main()
{
  Luftballon myBallon;
  myBallon.radius = 100; // gigantischer Ballon
  myballon.fliegen(); // Ballon fängt an zu fliegen
}



Das ist billiges Beispiel, aber ich hoff du hast das Prinzip einer Klasse verstanden.

Der beste Weg eine Klasse zu vertstehen und zu "beherrschen" ist das ständige ausprobieren. Mavh solche Klassen und dann ist dir klar oder kauf die ien Buch über Objektorientierte Programmierung (meistens C++ oder Java Bücher)
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 30.06.2003 um 15:23 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.06.2003, 18:59 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
~bussibär postete
man braucht es für die Objektorientierung, jede klasse ist ein objekt.

Autsch, nein. Es gibt eine klar definierte Namensgebung, diese sollte man auch anwenden finde ich. Nach dieser Namensgebung gibt es Klassen, konkrete Instanzen der Klassen heißen Objekte oder einfach Instanz.
Klassen sind also typen/Verallgemeinerungen von konkreten Dingen (Instanzen/Objekten). Ich bin ein Objekt der Klasse ForumBenutzer.
Vielleicht ein Link von interesse
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 30.06.2003 um 18:59 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
30.06.2003, 22:42 Uhr
~Steffen
Gast


Vielen Dank Leute!!!!

Für die tolle Unterstützung...

Mfg

Steffen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.07.2003, 17:40 Uhr
Spacelord
Hoffnungsloser Fall



Zitat:
virtual postete
[quote]~bussibär postete
[i]man braucht es für die Objektorientierung, jede klasse ist ein objekt.


Autsch, nein. Es gibt eine klar definierte Namensgebung, diese sollte man auch anwenden finde ich. Nach dieser Namensgebung gibt es Klassen, konkrete Instanzen der Klassen heißen Objekte oder einfach Instanz.
Klassen sind also typen/Verallgemeinerungen von konkreten Dingen (Instanzen/Objekten). Ich bin ein Objekt der Klasse ForumBenutzer.
Vielleicht ein Link von interesse[/i][/quote]



Ich weiss schon dass du Recht hast(in diesem Zusammenhang) aber grundsätzlich zu sagen dass diese Aussage aus OOP-Sicht falsch ist ist auch ziemlich wackelig.OOP bietet ja auch noch andere Umsetzungen(z.B. das Prototypkonzept) und z.B. Smalltalk behandelt in der Tat jede Klasse wie ein Objekt.Mit viel guten Willen und einer freizügigen Auslegung könnte man die Aussage auch in Bezug auf das Classobjekt von Java gelten lassen .
Naja,um ehrlich zu sein bezweifel ich stark dass bussibär auf Smalltalk angespielt hat,oder Möglichkeiten zur Reflexion/Introspektion einbringen wollte.
Man sollte halt nur nicht aus den Augen verlieren dass es ausser C++/Java auch noch andere Sprachen gibt die das OO Konzept massiv anders angehen.


MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: