Hey, mir fiel keine bessere Überschrift ein, deshalb die 🙂
Ich bin gerade dabei, mir C# und .NET Framework beizubringen und zu verstehen. Dabei sind die Klassen ja ein Grundelement des OOP.
Einmal dient die Klasse ja dazu, einen "Bauplan" zu beinhalten, aus dem dann später ein Objekt erstellt wird. Allerdings habe ich den Begriff "Klasse" auch in einem anderen Zusammenhang gelesen:
"Weil C# keinen Exponentialoperator bereitstellt, kann das Quadrat des Radius über die Methode Pow der Klasse Math berechnet werden."
Die Klasse Math gehört ja zu der Klassenbibliothek, das habe ich verstanden. Aber irgendwie verstehe ich das noch nicht so ganz und weiß auch nicht, wie ich es in Worte fassen soll. Wenn ich etwas programmiere, so habe ich eine Klasse mit meinem geschriebenen Bauplan. Sind die Klassen in der Bibliothek genau solche Klassen, bloß anderen Inhalts? Hoffe ihr versteht mich 🙂
Vielen Dank und freundliche Grüße ausm Norden
Alex
Wenn ich das jetzt richtig verstehe. (Bin erst im ersten Semester Informatik und lerne alles in Java)
Aber:
Eine Klasse kann einmal im Sinne von "Object Orientated Programing" sein und somit Objekte erstellt werden.
Also du hast eine Klasse "Stuhl" und erstellt jetzt davon objekte. Erste jetzt kannst du mit diesem Stuhl arbeiten!
Jetzt gibt es aber auch Klassen, welche static sind. Also du kannst/musst sie nicht instanzieren, sprich zu einen Objekt machen bevor du es verwenden kannst! Und diese Klasse Math ist glaube ich eine static class!
Vielleicht hilfts Dir ja weiter 😉
"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger Dijkstra
Ich würde den Klasssenbegriff nicht so pauschal mit einem "Bauplan" gleichsetzen.
Klassen sind Strukturen, die Daten beinhalten (Properties, Felder), und Code, um diese Daten auf gewisse Weise zu manipulieren. Zusätzlich kapseln Klassen ihren Inhalt und bieten Schnittstellen an, um darauf zuzugreifen.
Objekte sind Instanzen, die von einer Klasse erzeugt werden.
System.Math ist eine Klasse mit einer statischen Methode Pow(). Auf statische Member wird nicht über eine Instanz (Objekt) zugegriffen, sondern über die Klasse selbst.
Ich hoffe dass hilft dir irgendwie weiter.
Klassen, welche nicht static sind, müssen instanziert werden, d.h du erzeugst mit
myClass myClassInstance = new myClass(),
ein neues Objekt der Klasse myClass, mit dem du von nun an arbeiten kannst.
static Klassen können nicht instanziert werden und sind oft nur so ne Art Funktionsbibliothek. Math.Pow() ist nur eine mathematische Funktion, welche unabhängig von einem Objekt besteht.
Hallo al3ko,
links im Hauptmenü findest Du, unter Ressourcen, einen link auf das Openbook "Praxisbuch Objektorientierung".
Das könnte Dir vielleicht auch noch das ein oder andere an Hintergrundwissen mitgeben.
Gruß
purplestar