Vergleich verschiedener OO-Programmiersprachen

Transcrição

Vergleich verschiedener OO-Programmiersprachen
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
Vergleich verschiedener
OO-Programmiersprachen
- Schnellumstieg in 15 Minuten -
C++
Visual
C++
Java
C#
Programmbeispiel in
Visual C++, C#, Java und C++
Dr. Ehlert, Juni 2012
1
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
Inhaltsverzeichnis
1. Problemstellung bzw. Datenmodellierung .......... 2
2. Programmbeispiel in Visual C++ (C++/CLI) ....... 4
3. Programmbeispiel in C# ..................................... 7
4. Programmbeispiel in Java ................................ 10
5. Programmbeispiel in C++ ................................. 13
Quelle: http://bilder.mzibo.net/tag/fahrrad/
2
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
1. Problemstellung bzw. Datenmodellierung
Problemstellung:
Ein Mensch (mit einem bestimmten Namen) kann viele Fahrräder besitzen. Ein
Fahrrad (mit einer bestimmten Farbe) hat keinen oder genau einen Besitzer.
Ein Mensch kann verheiratet sein.
Datenmodellierung:
0..1
hat
Ehepartner
0..1
Mensch
- name: String
- ehepartner: Mensch
- anzahlFahrraeder: int
- fahrraeder: Fahrrad[]
0..1
+ Mensch()
+ Mensch(String)
+ setName(String): void
+ getName(): String
+ getAnzahlFahrraeder(): int
+ heirate(Mensch): void
+ kaufe(Fahrrad): void
+ getEhepartner(): Mensch
+ getFahrrad(int): Fahrrad
Fahrrad
0..n
- farbe: String
+ Fahrrad()
+ Fahrrad(String)
+ setFarbe(String): void
+ getFarbe(): String
3
besitzt
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
2. Programmbeispiel in Visual C++ (C++/CLI)
// Dr. Ehlert / Juni 2012
// MenschFahrradVisualCPP.cpp: Hauptprojektdatei.
// Visual Studio 2010
#include "stdafx.h"
#include "Mensch.h"
#include "Fahrrad.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Mensch^ ersterMensch = gcnew Mensch("Klaus");
Mensch^ zweiterMensch = gcnew Mensch();
Mensch^ dritterMensch = gcnew Mensch();
Mensch^ vierterMensch = gcnew Mensch();
zweiterMensch->SetName("Harald");
dritterMensch->SetName("Susi");
Fahrrad^ erstesFahrrad = gcnew Fahrrad("rot");
Fahrrad^ zweitesFahrrad = gcnew Fahrrad();
Fahrrad^ drittesFahrrad = gcnew Fahrrad("blau");
ersterMensch->Kaufe(zweitesFahrrad);
dritterMensch->Kaufe(erstesFahrrad);
dritterMensch->Kaufe(drittesFahrrad);
zweiterMensch->Heirate(dritterMensch);
dritterMensch->Heirate(zweiterMensch);
zweitesFahrrad->SetFarbe("gruen");
drittesFahrrad->SetFarbe("gelb");
Console::WriteLine(ersterMensch->GetName());
Console::WriteLine(zweiterMensch->GetEhepartner()->GetName());
int anzahl = dritterMensch->GetAnzahlFahrraeder();
for (int i = 0; i < anzahl; i++)
Console::WriteLine(i+1 + ". Fahrrad: " + dritterMensch->GetFahrrad(i)->GetFarbe());
Console::WriteLine(vierterMensch->GetName());
Console::ReadLine();
return 0;
}
4
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Mensch.h
#include "Fahrrad.h"
using namespace System;
ref class Mensch
{
private:
String^ name;
Mensch^ ehepartner;
int anzahlFahrraeder;
array<Fahrrad^>^ fahrraeder;
public:
Mensch()
{
this->name = "Janine";
this->anzahlFahrraeder = 0;
fahrraeder = gcnew array<Fahrrad^>(100);
}
Mensch(String^ name)
{
this->name = name;
this->anzahlFahrraeder = 0;
fahrraeder = gcnew array<Fahrrad^>(100);
}
void SetName(String^ name)
{
this->name = name;
}
String^ GetName()
{
return this->name;
}
int GetAnzahlFahrraeder()
{
return this->anzahlFahrraeder;
}
void Heirate(Mensch^ einMensch)
{
this->ehepartner = einMensch;
}
void Kaufe(Fahrrad^ einFahrrad)
{
this->fahrraeder[anzahlFahrraeder] = einFahrrad;
this->anzahlFahrraeder++;
}
Mensch^ GetEhepartner() {
return this->ehepartner;
}
Fahrrad^ GetFahrrad(int i)
{
return fahrraeder[i];
}
};
5
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Fahrrad.h
#pragma once
using namespace System;
ref class Fahrrad
{
private:
String^ farbe;
public:
Fahrrad()
{
this->farbe = ("unbekannt");
}
Fahrrad(String^ farbe)
{
this->farbe = farbe;
}
void SetFarbe(String^ farbe)
{
this->farbe = farbe;
}
String^ GetFarbe()
{
return this->farbe;
}
};
6
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
3. Programmbeispiel in C#
// Dr. Ehlert / Juni 2012
// MenschFahrradTest.cs
// Visual Studio 2010
using System;
namespace MenschFahrradCS
{
class MenschFahrradTest
{
static void Main(string[] args)
{
Mensch ersterMensch = new Mensch("Klaus");
Mensch zweiterMensch = new Mensch();
Mensch dritterMensch = new Mensch();
Mensch vierterMensch = new Mensch();
zweiterMensch.SetName("Harald");
dritterMensch.SetName("Susi");
Fahrrad erstesFahrrad = new Fahrrad("rot");
Fahrrad zweitesFahrrad = new Fahrrad();
Fahrrad drittesFahrrad = new Fahrrad("blau");
ersterMensch.Kaufe(zweitesFahrrad);
dritterMensch.Kaufe(erstesFahrrad);
dritterMensch.Kaufe(drittesFahrrad);
zweiterMensch.Heirate(dritterMensch);
dritterMensch.Heirate(zweiterMensch);
zweitesFahrrad.SetFarbe("gruen");
drittesFahrrad.SetFarbe("gelb");
Console.WriteLine(ersterMensch.GetName());
Console.WriteLine(zweiterMensch.GetEhepartner().GetName());
int anzahl = dritterMensch.GetAnzahlFahrraeder();
for (int i = 0; i < anzahl; i++)
Console.WriteLine(i+1 + ". Fahrrad: " +
dritterMensch.GetFahrrad(i).GetFarbe());
Console.WriteLine(vierterMensch.GetName());
Console.ReadLine();
}
}
}
7
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Mensch.cs
using System;
namespace MenschFahrradCS
{
class Mensch
{
private
private
private
private
String name;
Mensch ehepartner;
int anzahlFahrraeder;
Fahrrad[] fahrraeder;
public Mensch()
{
this.name = "Janine";
this.anzahlFahrraeder = 0;
fahrraeder = new Fahrrad[100];
}
public Mensch(String name)
{
this.name = name;
this.anzahlFahrraeder = 0;
fahrraeder = new Fahrrad[100];
}
public void SetName(String name)
{
this.name = name;
}
public String GetName()
{
return this.name;
}
public int GetAnzahlFahrraeder()
{
return this.anzahlFahrraeder;
}
public void Heirate(Mensch einMensch)
{
this.ehepartner = einMensch;
}
public void Kaufe(Fahrrad einFahrrad)
{
this.fahrraeder[anzahlFahrraeder] = einFahrrad;
this.anzahlFahrraeder++;
}
public Mensch GetEhepartner()
{
return this.ehepartner;
}
public Fahrrad GetFahrrad(int i)
{
return fahrraeder[i];
}
}
}
8
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Fahrrad.cs
using System;
namespace MenschFahrradCS
{
class Fahrrad
{
private String farbe;
public Fahrrad()
{
this.farbe = ("unbekannt");
}
public Fahrrad(String farbe)
{
this.farbe = farbe;
}
public void SetFarbe(String farbe)
{
this.farbe = farbe;
}
public String GetFarbe()
{
return this.farbe;
}
}
}
9
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
4. Programmbeispiel in Java
/**
* Programm in Java mit JavaEditor (bzw. Eclipse) / MenschFahrradTest.java
* @version 1.0 vom 06.06.2012
* @author Dr. Ehlert
*/
public class MenschFahrradTest {
public static void main(String[] args) {
Mensch
Mensch
Mensch
Mensch
ersterMensch
zweiterMensch
dritterMensch
vierterMensch
=
=
=
=
new
new
new
new
Mensch("Klaus");
Mensch();
Mensch();
Mensch();
zweiterMensch.setName("Harald");
dritterMensch.setName("Susi");
Fahrrad erstesFahrrad = new Fahrrad("rot");
Fahrrad zweitesFahrrad = new Fahrrad();
Fahrrad drittesFahrrad = new Fahrrad("blau");
ersterMensch.kaufe(zweitesFahrrad);
dritterMensch.kaufe(erstesFahrrad);
dritterMensch.kaufe(drittesFahrrad);
zweiterMensch.heirate(dritterMensch);
dritterMensch.heirate(zweiterMensch);
zweitesFahrrad.setFarbe("gruen");
drittesFahrrad.setFarbe("gelb");
System.out.println(ersterMensch.getName());
System.out.println(zweiterMensch.getEhepartner().getName());
int anzahl = dritterMensch.getAnzahlFahrraeder();
for (int i = 0; i < anzahl; i++)
System.out.println(i+1 + ". Fahrrad: " +
dritterMensch.getFahrrad(i).getFarbe());
System.out.println(vierterMensch.getName());
}
}
10
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Mensch.java
public class Mensch {
private
private
private
private
String name;
Mensch ehepartner;
int anzahlFahrraeder;
Fahrrad[] fahrraeder;
public Mensch() {
this("Janine");
}
public Mensch(String name) {
this.name = name;
this.anzahlFahrraeder = 0;
fahrraeder = new Fahrrad[100];
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public int getAnzahlFahrraeder() {
return this.anzahlFahrraeder;
}
public void heirate(Mensch einMensch) {
this.ehepartner = einMensch;
}
public void kaufe(Fahrrad einFahrrad) {
this.fahrraeder[anzahlFahrraeder] = einFahrrad;
this.anzahlFahrraeder++;
}
public Mensch getEhepartner() {
return this.ehepartner;
}
public Fahrrad getFahrrad(int i) {
return fahrraeder[i];
}
}
11
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Fahrrad.java
public class Fahrrad {
private String farbe;
public Fahrrad() {
this.farbe = ("unbekannt");
}
public Fahrrad(String farbe) {
this.farbe = farbe;
}
public void setFarbe(String farbe) {
this.farbe = farbe;
}
public String getFarbe() {
return this.farbe;
}
}
12
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
5. Programmbeispiel in C++
// Dr. Ehlert / Juni 2012
// main.cpp
// mit Dev-C++ (bzw. Visual Studio 2010)
#include
#include
#include
#include
<cstdlib>
<iostream>
"Mensch.h"
"Fahrrad.h"
using namespace std;
int main(int argc, char *argv[])
{
Mensch* ersterMensch = new Mensch("Klaus");
Mensch* zweiterMensch = new Mensch();
Mensch* dritterMensch = new Mensch();
Mensch* vierterMensch = new Mensch();
zweiterMensch->setName("Harald");
dritterMensch->setName("Susi");
Fahrrad* erstesFahrrad = new Fahrrad("rot");
Fahrrad* zweitesFahrrad = new Fahrrad();
Fahrrad* drittesFahrrad = new Fahrrad("blau");
ersterMensch->kaufe(zweitesFahrrad);
dritterMensch->kaufe(erstesFahrrad);
dritterMensch->kaufe(drittesFahrrad);
zweiterMensch->heirate(dritterMensch);
dritterMensch->heirate(zweiterMensch);
zweitesFahrrad->setFarbe("gruen");
drittesFahrrad->setFarbe("gelb");
cout << ersterMensch->getName() << endl;
cout << zweiterMensch->getEhepartner()->getName() << endl;
int anzahl = dritterMensch->getAnzahlFahrraeder();
for (int i = 0; i < anzahl; i++)
cout << i+1 << ". Fahrrad: " << dritterMensch->getFahrrad(i)->getFarbe() << endl;
cout << vierterMensch->getName();
cin.get();
return EXIT_SUCCESS;
}
13
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Mensch.h
#pragma once
#include <string>
#include "Fahrrad.h"
using namespace std;
class Mensch
{
private:
string name;
Mensch* ehepartner;
int anzahlFahrraeder;
Fahrrad *fahrraeder[100];
public:
Mensch();
Mensch(string name);
void setName(string name);
string getName();
int getAnzahlFahrraeder();
void heirate(Mensch* einMensch);
void kaufe(Fahrrad* einFahrrad);
Mensch* getEhepartner();
Fahrrad* getFahrrad(int i);
};
14
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Mensch.cpp
#include <string>
#include "Mensch.h"
using namespace std;
Mensch::Mensch()
{
this->name = "Janine";
this->anzahlFahrraeder = 0;
}
Mensch::Mensch(string name)
{
this->name = name;
this->anzahlFahrraeder = 0;
}
void Mensch::setName(string name)
{
this->name = name;
}
string Mensch::getName()
{
return this->name;
}
int Mensch::getAnzahlFahrraeder()
{
return this->anzahlFahrraeder;
}
void Mensch::heirate(Mensch* einMensch)
{
this->ehepartner = einMensch;
}
void Mensch::kaufe(Fahrrad* einFahrrad)
{
this->fahrraeder[anzahlFahrraeder] = einFahrrad;
this->anzahlFahrraeder++;
}
Mensch* Mensch::getEhepartner()
{
return this->ehepartner;
}
Fahrrad* Mensch::getFahrrad(int i)
{
return fahrraeder[i];
}
15
Programmiersprachen
Programmbeispiel in Visual C++, C#, Java und C++
// Fahrrad.h
#pragma once
#include <string>
using namespace std;
class Fahrrad
{
private:
string farbe;
public:
Fahrrad();
Fahrrad(string farbe);
void setFarbe(string farbe);
string getFarbe();
};
// Fahrrad.cpp
#include <string>
#include "Fahrrad.h"
using namespace std;
Fahrrad::Fahrrad()
{
this->farbe = ("unbekannt");
}
Fahrrad::Fahrrad(string farbe)
{
this->farbe = farbe;
}
void Fahrrad::setFarbe(string farbe)
{
this->farbe = farbe;
}
string Fahrrad::getFarbe()
{
return this->farbe;
}
16

Documentos relacionados