Java vs C# Michał Prządka Tomasz Nowak

Slides:



Advertisements
Podobne prezentacje
Usługi sieciowe Wykład 9 VPN
Advertisements

Analiza wywołania i przebiegu przerwań w systemie Linux

tworzenie połączeń sieciowych

Java Server Faces Tomasz Nowak.
ALLEGRO PIERWSZA GRA: WYŚCIG
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Wybrane elementy C#, BCL
Nguyen Hung Son Uniwersytet Warszawski
Podstawy języka Java Nguyen Hung Son Uniwersytet Warszawski.
Nowa wersja C# Autor: Piotr Sobczak
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
1 Przestrzenie nazw. 2 Globalna przestrzeń nazw jest jedna W programach pisanych przez wiele osób, lub korzystających z bibliotek napisanych przez innych,
Testowanie oprogramowania metodą badania pokrycia kodu
Łukasz Monkiewicz.
Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.

142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Aplikacje sieciowe Obiekty typu Socket. ServerSocket ClientSocket Socket ClientSocket Socket.
Warstwy aplikacji sieciowych
„Tworzenie aplikacji sieciowych w języku Java”
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Objects classes,
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Java – overview.
Język C# Copyright, 2004 © Adam Czajka.
MS ASP.NET 2005/2006
Przestrzeń System podstawowe klasy i klasy bazowe.
Tadeusz Janasiewicz IT Group, Tadeusz Janasiewicz, WSUS, IT Group, r.
Najpopularniejsze aplikacje ASP.NET i PHP.
Integracja aplikacji Wykład 2
Programowanie urządzeń mobilnych – wykład IV
REKURENCJA.
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Krzysztof Manuszewski
Asynchroniczność w Windows 8 Jakub Binkowski. O mnie Jakub Binkowski Lead.NET Developer.
Tworzenie aplikacji mobilnych
Programowanie Windows na przykładzie C# część 1
Click to show the screen.
db4o Kacper Skory Marcin Talarek
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Seminarium problemowe
Struktura programu w języku Java
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
Tablice.
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
C# Platforma .NET CZ.3 Kuba Ostrowski.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
Instrukcja warunkowa i wyboru
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Silverlight 4 dla Windows Phone 7
1.
I am sorry, but I can’t go out with you
OCPJP Inner classes.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
Wprowadzenie Przygotował Adam Zawadzki
POLISH FOR BEGINNERS.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Podstawy programowania (4)
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Realizacja aplikacji internetowych
Previously discusses: different kinds of variables
Zapis prezentacji:

Java vs C# Michał Prządka Tomasz Nowak

KONSPEKT 1. Rys historyczny 2. Charakterystyka platformy Java i .NET 3. Hello world 4. Przegląd konstrukcji języków 5. Środowiska programistyczne 6. Rynki zbytu 7. Podsumowanie

Rys historyczny Java: powstaje w 1990 – projekt Oak (Sun) Pierwsza dostępna implementacja: 1995 (Java 1.0) obecnie: Java 6 C#: powstaje w 2000 głowny architektem jest Anders Hejlsberg silne nawiązania do Javy, C++, Smalltalka i Delphi obecnie: C# 2.0 Sourceforge.net (21 stycznia 2007): # projektów w Javie: 21 831 # projektów w C#: 4 844

Charakterystyka platformy Java i .NET

JVM vs CLR

Automatyczne zarządzanie pamięcią

Wielosystemowość vs Monosystemowość

Hello world - made by Java class Hello { public static void main(String[] args) System.out.println("Hello world"); }

Przegląd konstrukcji języków

Podobieństwa

Składnia i słowa kluczowe Wszystko jest obiektem Brak metod globalnych Wielodziedziczenie Obsługa wyjątków Enumeratory Szablony Dokumentowanie kodu

Różnice ! ( C# == JAVA )

switch - case switch(foo) { case "A": Console.WriteLine("A seen"); break; case "B": case "C": Console.WriteLine("B or C seen"); case "D": Console.WriteLine("D seen"); case "E": Console.WriteLine("E seen"); break; }

Pakiety package Company; import java.util.*; import Carnage4life.MyOtherClass; { public class MyClass int x; void doStuff(){} } Jako katalog Jako plik Zdefiniowana w osobnym pliku (w innym pakiecie/katalogu)

Przestrzenie nazw using System; namespace Company { public class MyClass int x; void doStuff(){} } namespace Carnage4life public class MyOtherClass int y; void doOtherStuff(){} public static void Main(string[] args) { Console.WriteLine("Hey, I can nest namespaces"); } …

Metody wirtualne public class Parent { public void DoStuff(string str) { Console.WriteLine("In Parent.DoStuff: " + str); } } public class Child: Parent { Console.WriteLine("In Child.DoStuff: " + str); } Child ch = new Child(); ch.DoStuff("Test"); ((Parent) ch).DoStuff("Second Test");

( czyli czego brakuje w Javie ) Wish you were here ( czyli czego brakuje w Javie )

Parametry ref i out public static void ChangeMe(out string s) { s = "Changed"; } public static void Swap(ref int x, ref int y) { int z = x; x = y; y = z; } public static void Main(string[] args) { int a = 5, b = 10; string s; Swap(ref a, ref b); ChangeMe(out s); Console.WriteLine("a := " + a + ", b := " + b + ", s = " + s); }

Włączenie/wyłączenie sprawdzania poprawności public static void Main(string[ ] args) { int num = 5000; byte a = (byte) num; checked byte b = (byte) num; } unchecked byte c = (byte) num;

Właściwości class Woman … private int age; public int Age { get { return age - 10; } set { age = value; } } w.Age = 35; Console.Writeln( w.Age );

Indeksatory public class Stack { public object this[int index] get { return GetNode(index).Value; } set { GetNode(index).Value = value; } } … Stack s= new Stack(); s[0]=10; Console.WriteLine(s[0]);

Operatory class MyNumber { private int value; public MyNumber(int value) this.value = value; } public static MyNumber operator+(MyNumber n1, MyNumber n2) return new MyNumber(n1.value + n2.value); …

Wskaźniki int[] array = {9, 1, 3, 6, 11, 99, 37, 17, 0, 12}; fixed( int* iptr = array ) { Sort(iptr, array.Length); }

Wskaźniki public static unsafe void Swap(int* a, int*b) { int temp = *a; *a = *b; *b = temp; } public static unsafe void Sort(int* array, int size) for(int i= 0; i < size - 1; i++) for(int j = i + 1; j < size; j++) if(array[i] > array[j]) Swap(&array[i], &array[j]);

Struktury struct Point { public int x; public int y; public Point( int x, int y) { this.x = x; this.y = y; } public static void Main(string[] args) Point start = new Point(5, 9); … }

Zdarzenia, delegety class EvenNumberEvent : EventArgs { internal int number; public EvenNumberEvent(int number) : base() { this.number = number; } }

class Publisher { public delegate void EvenNumberSeenHandler(object sender, EventArgs e); public event EvenNumberSeenHandler EvenNumHandler; protected void OnEvenNumberSeen(int num) if(EvenNumHandler!= null) EvenNumHandler(this, new EvenNumberEvent(num)); } public void RunNumbers() Random r = new Random((int) DateTime.Now.Ticks); for(int i=0; i < 20; i++) int current = (int) r.Next(20); Console.WriteLine("Current number is:" + current); if((current % 2) == 0) OnEvenNumberSeen(current);

public class EventTest { public static void EventHandler(object sender, EventArgs e) Console.WriteLine("\t\tEven Number Seen:" + ((EvenNumberEvent)e).number); } public static void Main(string[] args) Publisher pub = new Publisher(); pub.EvenNumHandler += new Publisher.EvenNumberSeenHandler(EventHandler); pub.RunNumbers(); pub.EvenNumHandler -= new Publisher.EvenNumberSeenHandler(EventHandler);

( czyli czego brakuje w C# ) Wish you were here ( czyli czego brakuje w C# )

Klasy anonimowe (w C# - metody anonimowe) To klasy lokalne, które nie mają nazwy... Button buttonC = new Button("C"); buttonC.addMouseListener( new MouseListener() { public void windowClosing(WindowEvent e){ System.out.println( "Close button clicked"); System.exit(0); }//end windowClosing }//end class definition );//end addWindowListener

Wyjątki typu checked public void readFile() throws IOException { Wyjątki, które muszą być obsłużone – albo przez try i catch albo przez throws w sygnaturze metody – np. IOException public void readFile() throws IOException { File f = new ... ... } Przykłady wyjątków nie-checked – wszystkie typu RuntimeException – np. NullPointerException, ArrayOutOfBounds

Rynki zbytu Desktop Web Mobile

Środowiska programistyczne Java C#

Last but not least

Bibliografia http://www.25hoursaday.com/CsharpVsJava.html http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

Podsumowanie