Vorteil von Klassen/Objekten in C#
lima-city → Forum → Programmiersprachen → C/C++ und D
ansatz
auto
automarke
beispiel
beschreiben
entwicklung
farbe
frage
funktion
klasse
motor
objekt
programmieren
programmiersprache
programmierung
semantik
syntax
tag
vorteil
welt
-
Hallo, ich hoffe, dass es ok ist, dass ich eine tag/frage">Frage, bez?glich C#, in das C/C++-Forum poste.
Aber nun zu meiner Frage:
Worin liegt eigentlich der Vorteil, dass in C# alles Objekte sind? Ist es nicht egal, ob man nun schreibt:
C++
#include <iostream.h>
void main()
{
int i;
cout << "Hallo Welt!";
cin >> i;
}
oder
C#
using System;
namespace beispiel
{
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("Hallo Welt!");
Console.ReadLine();
}
}
}
--------------------------------
Worin besteht da der Vorteil? Ob nun die Befehle, bei C#, f?r die Textausgabe ?ber die Klasse "Console" laufen, oder nicht, kann doch egal sein, oder?
MfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Bei so nen kleinen Programm ist es das auch, au?er es muss objektorientier sein
Die Vorteile kann man bei so kleinen Programmen wie einer Textausgabe nie erkennen oder verstehen. Ich versuche dir das kurz und konkret zu erkl?ren. Programmiersprachen wie C++/C# oder Java sind objektorientiert.
Eine objektorientierte Sprache besteht nun aus Klassen und Objekten.
Stell dir nun eine Klasse Auto vor. Sie enth?lt alle Informationen als Datentyp (in der Klasse Elemente genannt. zB int anzTueren) und Funktionen (in der Klasse Methoden genannt. zB fahren). Halt alle grundlegenden Dinge die ein Auto so hat.
Nun willst du zB eigene Klassen f?r jede Automarke haben -> jede Marke hat ein eigenes Logo (is das verst?ndlichst was mir eingefallen ist)
Nun kannst du Jede Automarken-Klasse von Auto ABLEITEN.
Die Automarken-Klassen ?bernehmen alles von der Auto Klasse ohne das man es neuschreiben muss.
Man kann von einer Automarke zB BMW f?r jedes Modell dann ein Objekt erstellen.
Also alles objektorientiert aufgebaut.
Das Ableiten ist halt einer der gro?en Vorteile. Desweiteren gibt es dann noch die Vererbung und vielleicht auch bei C# die Mehrfachvererbung.
Halt am besten ist es du borgst die bei einer Bibliothek ein gutes Buch wie C# in 21 Tagen aus oder du kaufst es dir. Weil das sind ein paar eigene Kapitel in denen die Vorteile erkl?rt werden so dass du sie wirklich verstehst.
Ich habe C++ in 21 Tagen und das hat mir sehr gut geholfen das Schuljahr zu bestehen ;)
Hoffe dir hat meine kleine Mini-Erkl?rung schon gaaaanz wenig weiterhelfen k?nnen.
Cheers -
#include <iostream.h>
class auto
{
public:
void setJahrgang (int jahrg);
int getJahrgang();
void motor();
private:
int jahrgang;
};
int auto::getJahrgang()
{
return jahrgang;
}
void auto::setJahrgang(int jahrg)
{
jahrgang = jahrg;
}
void auto::motor()
{
cout << "Brumm Brumm";
}
int main()
{
auto myCar;
myCar.motor();
myCar.setJahrgang(1970);
myCar.getJahrgang();
}
----------------------------------------------------
Also beschreiben die Funktionen/Objektvariablen die Farbe/Funktionen usw. eines Objekts?
Das ganze ist also da, um Objektorientiert zu programmieren, also auch um die Funktionen etc. eines Objekts zu speichern und so?
cd
-
Alsooo, ich hole mal bisschen aus.
Erst gab es eine Programmiersprache namens BCPL (60er Jahre). Als bei AT&T ein Unix Betriebssystem programmiert werden sollte, wurde extra daf?r vorher die Programmiersprache B entwickelt (das war 1970). Um Unix bei AT&T auf eine neue Rechnergeneration zu portieren, wurde B wiederum weiterentwickelt und es wurde C daraus (1972). Aus diesem Grund h?ngen Unix und C auch so eng miteinander zusammen (und weil MS sein MS-DOS als v?llig vereinfachtes Unix konzipiert hatte, ist auch Windows komplett in C geschrieben, bis auf die paar Teile in Assembler). Anfang der 80er kamen dann einige Informatiker auf die Idee, dass es viel besser ist, wenn man in Programmiersprachen Objekte beschreiben kann. Daf?r gibt es verschiedene Gr?nde. Es gab einmal den Ansatz, v?llig objektorientierte Programmiersprachen zu entwickeln (z.B. SMALLTALK), ein anderer Ansatz war, in eine imperative Programmiersprache die Unterst?tzung von Objekten zu integrieren. C ist eine imperative Programmiersprache und es wurde eine neue Version entwickelt, die dem heutigen C++ bereits ?hnlich war, aber noch "C mit Klassen" hiess. 1983 begann dann die Entwicklung von C++, das Klassen mit diversen Ideen zu objektorientierter Programmierung und eine imperative Programmiersprache vereinte (C ist immer noch eine Untermenge von C++, d.h. man kann mit einem C++ Compiler einfach C Programme schreiben). Auch die Entwicklung von C++ erfolgte bei AT&T. Mitte der 90er Jahre wurde dann von Sun Microsystems eine neue Programmiersprache vorgestellt, deren Semantik sich an C++ orientierte, jedoch mit einem Interpreter arbeitete, um auf allen Plattformen verf?gbar gemacht werden zu k?nnen und keine Portierungsarbeiten durch Softwareentwickler zu beanspruchen. Ein weiterer Unterschied zu C++ ist, dass Java vollkommen objektorientiert ist und zur Vereinfachung das Konzept der Mehrfachvererbung von C++ nicht ?bernommen wurde. Dann kam MS mit C#, was als eine an Java angelehnte Weiterentwicklung von C++ beschrieben werden kann. D.h., die Semantik von C# ist der von Java ?hnlicher als der von C++, aber es wurden einige Dinge aus C++ ?bernommen.
Kurze Zusammenfassung der relevanten Dinge:
C -> imperative Programmiersprache
C++ -> Weiterentwicklung von C, imperativ und objektorientiert gleichzeitig
Java -> Syntax angelehnt an C++, objektorientiert
C# -> Syntax angelehnt an Java, weniger objektorientiert als Java.
Jetzt ist nat?rlich die Frage, warum schreibe ich hier so viel hin?
Antwort: Im ersten Post wurde gefragt, wo der Vorteil von objektorientierter Programmierung liegt und als Beispiele wurden ein C++ Quelltext und ein C# Quelltext als Beispiele angef?hrt. Eigentlich h?tte es statt einem C++ Quelltext ein C Quelltext sein sollen, da im C++ Quelltext mit cin und cout bereits Objekte benutzt wurden und dies sogar mit ?berladenen Operatoren.
compactdisc schrieb:
Also beschreiben die Funktionen/Objektvariablen die Farbe/Funktionen usw. eines Objekts?
Das ganze ist also da, um Objektorientiert zu programmieren, also auch um die Funktionen etc. eines Objekts zu speichern und so?
Ganz grob gesagt: Ja, genau darum geht es bei OOP. -
ok, vielen Dank f?r eure Antworten, der Thread kann geschlossen werden!
Vielen Dank an: 0-checka und prm!
cd -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage