Metodyka programowania. Podstawy C#

Podobne dokumenty
Metodyka programowania. Podstawy C#

Podstawy programowania. Wprowadzenie

Microsoft IT Academy kurs programowania

Wykład 2 Składnia języka C# (cz. 1)

Programowanie Komputerów

Materiały do zajęć VII

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Programowanie obiektowe

Wykład 8: klasy cz. 4

MATERIAŁY DO ZAJĘĆ II

PARADYGMATY PROGRAMOWANIA Wykład 4

Wykład 3 Składnia języka C# (cz. 2)

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Podstawy programowania skrót z wykładów:

Języki i paradygmaty programowania - 1

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Programowanie obiektowe

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Wykład 2: Podstawy Języka

Programowanie obiektowe

Programowanie obiektowe

Programowanie Komputerów

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Programowanie C# mgr in. Dariusz Ku. p. 119A

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Zaawansowane programowanie w języku C++ Klasy w C++

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Język C++ zajęcia nr 2

Wykład 5 Okna MDI i SDI, dziedziczenie

PARADYGMATY PROGRAMOWANIA Wykład 3

Definiowanie własnych klas

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Laboratorium 1 - Programowanie proceduralne i obiektowe

Język C++ Różnice między C a C++

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Platformy Programistyczne Podstawy języka Java

Szablony klas, zastosowanie szablonów w programach

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

C# - innowacja czy plagiat?

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

TEMAT : KLASY DZIEDZICZENIE

Java Podstawy. Michał Bereta

JAVA W SUPER EXPRESOWEJ PIGUŁCE

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Języki i techniki programowania Ćwiczenia 2

Programowanie współbieżne i rozproszone

Wykład 5: Klasy cz. 3

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Podstawowe części projektu w Javie

I - Microsoft Visual Studio C++

Podstawy programowania. Programowanie obiektowe

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Rozdział 4 KLASY, OBIEKTY, METODY

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie 2. Język C++. Wykład 3.

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

C# /.NET. Copyright by 3bird Projects 2018,

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Projektowanie klas c.d. Projektowanie klas przykład

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Część 4 życie programu

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Wyliczanie wyrażenia obiekty tymczasowe

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

1 Atrybuty i metody klasowe

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Multimedia JAVA. Historia

Programowanie RAD Delphi

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

PARADYGMATY PROGRAMOWANIA Wykład 2

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Kurs WWW. Paweł Rajba.

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Czym jest stos i sterta?

Język C++ wykład VIII

Język ludzki kod maszynowy

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Transkrypt:

Metodyka programowania Podstawy C#

Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas Programy mogą być pisane w jednym z wielu języków (C++, C#, F#, J#, Delphi, Visual Basic) Umożliwia uruchamianie programów na serwerze IIS (Internet Information Services) oraz na systemach z implementacją.net Zgłoszony standard EMCA, powstają niezależne wdrożenia, np. Mono (UNIX, Linux, Android, )

Platforma.NET Struktura.NET Biblioteki Windows.Forms WebServices ADO.NET ASP.NET XML, SQL BCL (Base Class Library) Środowisko uruchomieniowe CLR (Common Language Runtime)

Platforma.NET Środowisko uruchomieniowe CLI C# J# C++ Kod IL Biblioteki.NET Obsługa wykonywania Kompilator JIT (Just in Time) Bezpieczeństwo Zarządzanie pamięcią Kod maszynowy Procesor

Platforma.NET Wersje.NET 1.0 (2002 r.) 2.0 (2005 r.), Windows Server 2003 3.0 (2006 r.), Windows Server 2008, Windows Vista 3.5 (2007 r.), Windows 7 4.0 (2010 r.) 4.5 (2012 r.), Windows Server 8, Windows 8

C# Najważniejsze cechy C# Obiektowość kod programu jest zbiorem klas; typy proste (int, double, itd.) również są strukturami Odśmiecanie pamięci zarządzaniem pamięcią zajmuje się środowisko uruchomieniowe Wiele nowoczesnych rozwiązań właściwości, indeksery, delegacje, zdarzenia, refleksje, (wiele zapożyczonych z języka Java) Bogate biblioteki klas dla aplikacji konsolowych (System), okienkowych (Windows.Forms), bazodanowych (ADO.NET), sieciowych (System.Net), w architekturze rozproszonej (WebServices), dynamicznych aplikacji internetowych (ASP.NET) oraz multimediów (Silverlight).

C# Wspólny system typów CTS Obiekt Klasa Typy proste Interfejs Typy wyliczeniowe Tablica Struktury Typy referencyjne Typy wartościowe

C# Typy wartościowe Deklaracja deklarowany (tworzony) jest obiekt Int32 x; x = 7; Przypisanie obiekt jest kopiowany Int32 a, b; a = 13; b = a; (są dwa obiekty Int32, oba zawierają wartość 13)

C# Typy referencyjne Deklaracja deklarowana (tworzona) jest referencja, obiekt nie istnieje dopóki nie zostanie utworzony operatorem new Button b1; b1 = new Button(); Przypisanie kopiowany jest nie obiekt, tylko referencja do niego Button b2; b2 = b1; (jest jeden obiekt Button, obie referencje wskazują na niego)

Typy proste C# Typy proste: Boolean (alias: bool) wartości logiczne true i false Int32 (alias: int) wartości całkowite ze znakiem: SByte, Int16, Int32, Int64 bez znaku: Byte, UInt16, UInt32, UInt64 Double (alias: double) Single (alias: single, float) Char (alias: char) znak Unicode, 16-bitowy String (alias: string)

Typy proste C# Typy proste są strukturami; dostarczają wiele użytecznych metod: ToString konwersja na łańcuch zanków Parse konwersja z łańcucha znaków TryParse jak Parse, ale z obsługą błędów Int32 a; a = Int32.Parse("32"); Double x, y; x = Double.Parse("4,1"); y = 1.25; Boolean ok; ok = Int32.TryParse("abc", a);

Typy proste C# Metody typów prostych - Int32 Statyczne (klasy) Int32 MinValue Int32 MaxValue Int32 Parse (String s) Boolean TryParse (String s, Int32 v) Instancji Int32 CompareTo (Int32 v) Boolean Equals (Int32 v) String ToString () String ToString (String format)

Typy proste C# Metody typów prostych - Int32 Statyczne (klasy) Double MinValue Double MaxValue Double NaN Double Epsilon Double NegativeInfinity Double PositiveInfinity Double Parse (String s) Boolean TryParse (String s, Double v) Instancji Int32 CompareTo Double v) Boolean Equals Double v) Boolean IsNaN () Boolean IsInfinity () String ToString () String ToString (String format)

Typy proste C# Konwersje typów prostych Konwersja automatyczna jest możliwa, gdy nie ma ryzyka utraty wartości lub pogorszenia precyzji: Int32 a; Int16 b = 77; a = b; w przeciwnym razie jest błędem składniowym: b = a; // błąd: Int16 <- Int32 Single y = 1.25; // błąd: Single <- Double Można stosować konwersje wymuszone: b = (Int16) a;

Typy wyliczeniowe C# Typy wyliczeniowe Służą do definiowania zbioru dopuszczalnych wartości enum Color { Red, Green, Blue } Color color = Color.Red; Dzięki ścisłej kontroli typów w C# gwarantują używanie zawsze poprawnych wartości

Tablice C# Tablice są typami referencyjnymi Po deklaracji musi następować utworzenie tablicy: Int32[] ti; ti = new Int32[3]; Utworzeniu może towarzyszyć nadanie wartości: Double[] td; td = new Double[3] { 1.0, 2.0, 3.5 }; Dostęp do elementów tablicy umożliwia indeksowanie Indeksy elementów: od 0 do rozmiar-1 for (i=0; i<3; i++) s += td[i];

Klasy C# Klasa definicja typu obiektu Obiekt instancja klasy; zmienna, której definicją jest klasa Pole element składowe klasy (obiektu), służący do przechowywania danych może być typu wartościowego lub referencyjnego

Klasy C# Metoda funkcja będąca elementem składowym klasy może być typu wartościowego lub referencyjnego mogą być przeciążone istnieją funkcje o specjalnym przeznaczeniu: konstruktor (można przeciążać) i destruktor Właściwość połączenie pola i dwóch metod (służących do odczytu i zmiany wartości pola)

Klasy C# Pola (inaczej: atrybuty) klasy Składnia: [Modyfikator] typ nazwa; [Modyfikator] typ nazwa = wartość; - Pola statyczne należą do klasy (a nie do instancji); pola prywatne są dostępne tylko dla metod danej klasy, natomiast nie są dostępne spoza tej klasy; - Pola typu referencyjnego należy pamiętać o konieczności utworzenia obiektów operatorem new Przykłady static Double InchCmRatio = 2.54; private Int32 x = 0;

Klasy C# Metody (inaczej: operacje) klasy Składnia: [Modyfikator] typ nazwa (argumenty) { // ciało metody } - Typ rezultatu dowolny typ C# lub void (ang. brak); Metoda powinna dostarczać rezultat przy pomocy instrukcji return (nie dotyczy funkcji z typem rezultatu void) - Na ogół metody wykonują operacje w obrębie własnej klasy (np. zmieniają wartość pól obiektu) Przykłady public Double ToCm() { return inches * InchCmRatio; }

Klasy C# Modyfikatory dostępu klasy i elementów składowych public - element dostępny bez ograniczeń, internal - dostępny tylko wewnątrz danego zestawu (ang. assembly), np. tylko dla innych klas tego samego projektu private (domyślny!) - niedostępny z zewnątrz static - element należący do klasy a nie do instancji (obiektu) - klasa, dla której nie można utworzyć obiektów const - element, którego wartość jest nadawana w deklaracji i nie może być później zmieniona

Klasy C# Przykład klasy public class Inch { public static Double InchCmRatio = 2.54; public static Double InchToCm(Double inch) { return inch * InchCmRatio; } } private Double val; public Inch(Double v) { val = v; } public Double ToCm() { return val * InchCmRatio; } public Double Cm { get { return ToCm(); } set {val = value / InchCmRatio; } }

Klasy C# Przykład klasy public class Inch { } [ ] - Klasa jest publiczna (tj. dostępna bez ograniczeń; - Nazwa klasy (Inch) funkcjonuje jak nazwa typu zmiennych, podobnie jak Int32, Double czy String

Klasy C# Przykład klasy Pole oraz metoda statyczne public static Double InchCmRatio = 2.54; public static Double InchToCm(Double inch) { return inch * InchCmRatio; } [ ] Przykład użycia Double lencm = Inch.InchToCm (10); Double leninch = lencm * Inch.InchCmRatio;

Klasy C# Przykład klasy Pole (prywatne) private Double val; [ ] Pole nie jest dostępne z zewnątrz (tj. spoza klasy), ale może być modyfikowane oraz odczytywane przez medody należące do klasy; Pole nie jest statyczne, zatem należy do obiektów (instancji), a nie do klasy jako całości Wartość pól powinna być podana przy ich deklaracji lub nadawana przez konstruktor klasy

Klasy C# Przykład klasy Konstruktor metoda używana do tworzenia obiektu (podczas działania operatora new) public Inch(Double v) { } [ ] val = v; Przykład użycia Każda klasa definiuje typ referencyjny użycie new jest konieczne, inaczej istnieje tylko referencja, a nie obiekt! Inch inch; inch = new Inch(3);

Klasy C# Przykład klasy Metoda (publiczna) public Double ToCm() { return inches * InchCmRatio; } [ ] Przykład użycia (metoda nie jest statyczn może być wywołana tylko na rzecz obiektu, nie klasy) Inch inch; Double lencm; inch = new Inch(3); lencm = inch.tocm();

Klasy C# Przykład klasy Właściwość (publiczna) public Double Cm { get { return ToCm(); } set {val = value / InchCmRatio; } } Przykład użycia (właściwości używa się jak pola, choć kryją się za nim operacje, zdefiniowane w sekcjach get oraz set definicji) Inch inch = new Inch(3); Double lencm; lencm = inch.cm; inch.cm = 15;

Aplikacje konsolowe C# Aplikacje konsolowe Środowisko MSVS umożliwia tworzenie aplikacji konsolowych - uruchamianych w klasycznym, czarnym oknie konsoli Kreator MSVS tworzy projekt zawierający: - włączenie typowych bibliotek - przestrzeń nazw (można w niej umieszczać własne klasy) - klasę Program - statyczną metodę Main

Aplikacje konsolowe C# Funkcja główna programu Każdy program musi zawierać funkcję główną (jak w C++); wykonanie programu polega na wykonaniu funkcji głównej.

Aplikacje konsolowe C# Przydatne klasy C# Math - klasa definiująca statyczne metody matematyczne, jak pierwiastek, potęga, logarytm, sinus itd. itp Double Sqrt (Double x); Double Pow (Double b, Double e); - oraz dwie stałe: liczby Π oraz e public const Double PI = 3.14159265358979; public const Double e = 2.718281828459045;

Aplikacje konsolowe C# Przydatne klasy C# Console - klasa definiująca szereg statycznych metod do obsługi konsoli (odpowiednik strumieni cin oraz cout w C++) - najważniejsze metody: void WriteLine (String line); String ReadLine (); ConsoleKeyInfo ReadKey (Boolean noecho);

Aplikacje konsolowe C# Metody klasy Console WriteLine wyświetla tekst i przechodzi do nowej linii - wyświetlenie łańcucha znaków Console.WriteLine ("Hello"); - wyświetlenie wartości zmiennej Console.WriteLine (x.tostring()); - wyświetlenie kilku informacji Console.WriteLine ("Wynik = " + x); Console.WriteLine ( String.Format("Suma {0} i {1} = {2}",a,b,s) );

Aplikacje konsolowe C# Metody klasy Console ReadLine wczytuje tekst wpisany z klawiatury (do naciśnięcia <Enter>) - wczytanie łańcucha znaków i konwersja na liczbę String ln; Double x; ln = Console.ReadLine (); x = Double.Parse(ln); - jw., ale z wykrywaniem błędów Boolean ok; ok = Double.TryParse(ln, out x);

Aplikacje konsolowe C# Przykład aplikacji konsolowej C#