Laden...

Klassen, verschiedene Begriffe?

Erstellt von al3ko vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.900 Views
A
al3ko Themenstarter:in
42 Beiträge seit 2006
vor 17 Jahren
Klassen, verschiedene Begriffe?

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

H
182 Beiträge seit 2006
vor 17 Jahren

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

F
722 Beiträge seit 2005
vor 17 Jahren

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.

K
124 Beiträge seit 2006
vor 17 Jahren

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.

A
al3ko Themenstarter:in
42 Beiträge seit 2006
vor 17 Jahren

herrlich, dann hab ich wieder etwas neues dazu gelernt. danke euch allen

P
157 Beiträge seit 2006
vor 17 Jahren

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