C# im Vergleich zu Java



Ähnliche Dokumente
Objektorientierte Programmierung

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Algorithmen und Datenstrukturen

Einführung in die Java- Programmierung

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Innere Klassen in Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

Java: Vererbung. Teil 3: super()

Einführung in die Java- Programmierung

Java Kurs für Anfänger Einheit 5 Methoden

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Vorkurs C++ Programmierung

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Typumwandlungen bei Referenztypen

Grundlagen von Python

Vererbung & Schnittstellen in C#

2. Semester, 2. Prüfung, Lösung

Java Virtual Machine (JVM) Bytecode

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Große Übung Praktische Informatik 1

Objektorientierte Programmierung

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

5.5.8 Öffentliche und private Eigenschaften

Klausur zur Einführung in die objektorientierte Programmierung mit Java

GetName(), GetName(), GetGeschlecht() und AelterWerden().

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Javakurs 2013 Objektorientierung

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

SEP 114. Design by Contract

WebService in Java SE und EE

Alltagsnotizen eines Softwareentwicklers

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Computeranwendung und Programmierung (CuP)

Testen mit JUnit. Motivation

J.5 Die Java Virtual Machine

Tutorium Rechnerorganisation

Objektorientierte Programmierung OOP

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Programmieren in Java

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Applets I. Grundlagen der g Applet-Programmierung

Applet Firewall und Freigabe der Objekte

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Client-Server-Beziehungen

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Java Einführung Abstrakte Klassen und Interfaces

Zählen von Objekten einer bestimmten Klasse

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Prinzipien Objektorientierter Programmierung

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

BEISPIELKLAUSUR Softwareentwicklung:

5. Abstrakte Klassen

U08 Entwurfsmuster (II)

Datentypen: Enum, Array, Struct, Union

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

3. Konzepte der objektorientierten Programmierung

2. Programmierung in C

Programmierkurs Java

Probeklausur Softwareengineering SS 15

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

5. Tutorium zu Programmieren

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Software Engineering Klassendiagramme Assoziationen

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Software Engineering Klassendiagramme Einführung

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Der lokale und verteilte Fall

Tagesprogramm

Javakurs zu Informatik I. Henning Heitkötter

Einführung in die Programmierung

Tutorium 5 - Programmieren

Java Einführung Collections

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Grundkonstrukte der Objektorientierung in Java, C# und C++

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Präsentation Von Laura Baake und Janina Schwemer

Die Programmiersprache C99: Zusammenfassung

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Einführung in Javadoc

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

EndTermTest PROGALGO WS1516 A

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe

Vorkurs Informatik WiSe 15/16

License Management SDK

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

Transkript:

C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03

Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick

Entstehung Entstehung von C# C-Familie: C, C++ und C# C# erstmals von Microsoft im Jahre 2000 präsentiert Definition von C# (Microsoft): C# soll die besten Eigenschaften aus mehreren Sprachen vereinen!

Entstehung Entstehung von Java Java wurde von Sun Microsystems 1995 als neue Objektorientierte Sprache vorgestellt Java im Grunde auch eine Sprache aus der C-Familie teilweise mit C++ identisch einige Sprachbestandteile von C++ anders umgesetzt oder konsequent eliminiert.

Überblick Java C# objektorientierte Sprache objektorientierte Sprache plattformunabhänig plattformunabhänig breit gefächerte Klassenbibliothek wichtige Komponente der MS-.NET Framework

Überblick Wieso wird C# immer wieder mit Java verglichen 1. beide sind objektorientierte Sprachen 2. Java ist zur Zeit Marktführer unter den objektorientierten Sprachen 3. Microsoft Strategie: Nicht mitbestimmen, sondern den Markt anführen (also den Marktführer ablösen)

Gemeinsamkeiten und Unterschiede Gemeinsamkeiten Verzicht auf Zeiger (C/ C++) alle Objekte erben von Object -Klasse Objekte werden auf dem Heap erzeugt (mit dem Schlüsselwort new) Garbage Collector Thread Unterstützung ( z. B.: synchronized - Konstrukt)

Gemeinsamkeiten und Unterschiede keine Header- Dateien Mehrfachvererbung für Schnittstellen (nicht für Implementierungen) keine globalen Funktionen oder Konstanten (alles in Klassen) Arrays und Strings mit festen Längen und Zugriffskontrolle Bedingungen nur mit boolean -Werten // kein if ( ref ) {... } // Compiler- Fehler // stattdessen if ( ref!= null ) {... }

Gemeinsamkeiten und Unterschiede Datentypen Java C# 1. Value-Typen: - byte, int, long, boolean, etc. 1.Value-Typen: - sbyte, byte, int, long, ulong, boolean, etc. Boxing: Der Boxing-Vorgang wandelt eine Value-Typ in ein Objekt!

Gemeinsamkeiten und Unterschiede Java 2. Referenztypen Referenz dient als Zeiger auf ein Objekt String, Interface, Class oder Array c# 2. Referenztypen Referenz dient als Zeiger auf ein Objekt String, Interface, Class, Objekt, Array oder Delegate Delegate: Ein Delegate ist ein Referenztyp der sich auf eine Methode oder auf eine Objektinstanz und die Instanzmethode dieses Objektes bezieht.

Gemeinsamkeiten und Unterschiede Beispiel: Alle Variablen müssen vor der ersten Verwendung initialisiert werden // Werttypen int x = 100; int y = x; y = y * 2; y=200; x=100; // Referenztypen MyObject ref1 = new MyObject(); ref1.value = 100; MyObject ref2 = ref1; ref2.value = ref2.value * 2; ref1=200; ref2=200;

Gemeinsamkeiten und Unterschiede Polymorphismus class A { public virtual void printname() { Console.WriteLine("A"); } } class B : A { public override void printname() { Console.WriteLine("B"); } } class C : B { public new void printname() { Console.WriteLine("C"); } } public class MyTest { static void Main(){ C c = new C(); c.printname(); //-->C ((B)c).printName(); //-->B ((A)c).printName(); //-->A } }

Gemeinsamkeiten und Unterschiede Properties: Geben die Möglichkeit, auf interne Daten und auf den Code einer Klasse zuzugreifen In Java wird dies durch Get- und Set- Methoden realisiert.

Gemeinsamkeiten und Unterschiede Enums Java //Deklaration public class Ampelfarbe { public final static String GRUEN =grün, public final static String GELB = gelb; public final static String ROT =rot; } //Benutzung String ampel = Ampelfarbe.GRUEN; C# //Deklaration public enum Ampelfarbe {gruen, gelb, rot}; //Benutzung Ampelfarbe ampel = Ampelfarbe.gruen; //Deklarationpublic enum Ampelfarbe : byte { gruen = 0, }; gelb = 5, rot = 5

Zusammenfassung Zusammenfassung C# teilweise identisch aufgebaut wie Java C# besitzt zusätzliche Komponente zu Java Nachteile: - nicht plattformunabhänig - kleine Klassenbibliothek Vorteile: - wichtige Komponente von MS-.NET Framework - leichter Umstieg ist möglich

Ausblick Über 8.000 Projektangebote seit Januar 2001 bescherten Java einen durchschnittlichen Marktanteil von 14 Prozent. Java C++ C#

Ausblick Progranm miersprache Freiberufler mit Kenntnissen in Projektangebote (seit 2001) Anzahl Anteil Anzahl Anteil Java 15.762 39 % 8.146 14 % C++ 14.294 35 % 5.298 9,4 % C# 285 0,7 % 394 0,5 % Tabelle 1: Anzahl Freiberufler in der GULP Profiledatenbank mit Kenntnissen in der jeweiligen Programmiersprache (Stand: 03/03) und Anzahl Projektangebote seit 2001.

Ausblick Marktchancen für die Zukunft Java hat weiterhin gute Zukunftschancen, solange Sun C# hat sehr gute Zukunftschancen, weil 1. sich nicht auf seinen Lohbeeren ausruht 2. auf die Bedürfnisse der Programmierer eingeht 3. keine Lizenzen an MS verkauft 1. C# ist eine wichtig Komponente der.net-framework 2. Plattformunabhänigkeit steckt noch in den Kinderschuhen 3. leicht zu erlernen