1. En infrastruktur för programutveckling

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Klasser och objekt.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Klassarv och inkapsling
Föreläsning 1.
Filhantering Grundprincipen för filhantering Öppna filen
Metoder i java Det finns två typer av metoder i java
Föreläsning 4 Python: mera om funktioner och parametrar
Arv.
Abstract & sealed.
Inkapsling.
Programmering II C#, ID1304.
Polymorfism.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
i olika programmeringsspråk
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
Programmering i C# 2. Inledande detaljer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
4. Arv och dynamisk bindning
Polymorfism.
Programmering i C# 10. Klassbiblioteket.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmering i C# 5. Structer.
Programmeringsteknik för Media1 & K1
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Programmering i C# 9. Pekare och osäker kod.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
SSCLI (Rotor) - Shared Source Common Language Infrastructure Johan Lindfors Microsoft.
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Programmering i C# Laborationer.
7. Delegerare och notifierare
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 OOP del II– Föreläsning 2 vecka 46 Konstruktorer Instansmetoder Kapitel 14 i kursboken.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Presentationens avskrift:

1. En infrastruktur för programutveckling Programmering i C# 1. En infrastruktur för programutveckling

Ursprung Utvecklingsgrupp hos Microsoft Anders Hejlsberg Generellt typsystem oberoende av språk Kompilering till mellanformat Självbeskrivande komponenter Heltäckande klassbibliotek Internetanpassat distribuerat system Kapitel 1

ECMA-standard Centrala delar i typsystem, mellanformat, exekveringsmiljö och klassbibliotek Common Language Infrastructure ECMA-334 Språket C# ECMA-335 Kapitel 1

Hello World i C# namespace Studentlitteratur.CSharp { public class Minimal private string message; public Minimal(string message) this.message = message; } public void DeliverMessage() System.IO.Console.WriteLine(message); Kapitel 1

Hello World i C# forts. static void Main() { Minimal obj = new Minimal(”Hello World!”); obj.DeliverMessage(); } Kapitel 1

Komponentorientering Typsystemet rent objektorienterat Ett steg till: komponentorienterat Public-deklarerad klass blir komponent Stark typkontroll Skräpsamling Prestanda Sämre än C/C++ Bättre än Java… Kapitel 1

Common Language Infrastructure Common Type System Typkategorier och deras egenskaper Common Language Specification Obligatoriska och valfria språkmekanismer Common Intermediate Language Mellanformatskoden och metainformationen Virtual Execution System Exekveringsmiljön Kapitel 1

Typsystemet (CTS/CLS) Exekveringsmiljön (VES) Centrala begrepp Utvecklarens API är klass-biblioteket Kompilerat till CIL VB C++ C# Perl Python … Klassbiblioteket Typsystemet (CTS/CLS) Exekveringsmiljön (VES) Operativsystemet Kapitel 1

1.1 Typkategorier Alla variabler är objekt C# och .NET 1.1 Typkategorier Alla variabler är objekt Har beteende och tillstånd Alla typer finns i klassbiblioteket Inga typer i språket C# har ett antal synonymer till de vanligaste Motsvarar traditionella inbyggda typer Typerna har också CIL-namn Kapitel 1

Tre kategorier Klasser Structer Interface Objekt hanteras med referensvariabel ”referenstyper” Structer Objekt har variabelnamn som representerar objektets tillstånd (värde) ”värdetyper” Interface Klass utan implementation Kapitel 1

Särskilda C#-kategorier Särskild syntax för tre andra kategorier: Enum – uppräkningsbar typ (struct) Delegate – metodreferens (klass) Event – utökad delegate (metod) Obs endast syntaxmässigt annorlunda Kapitel 1

Exempel typkategorier MyClass obj; obj = new MyClass(); MyStruct var; int x = 5; // en struct av typen Int32 int y = 10; y = x; // y och x är olika variabler med samma värde string s1 = ”Ett”; string s2 = ”Två”; s1 = s2; // s1 och s2 refererar till samma sträng Kapitel 1

1.2 Klassbiblioteket 294 standardiserade typer Gemensam basklass heter Object (object) Indelat i namnrymder, roten heter System Indelat i underbibliotek, centrala heter BCL Underbibliotek utgör profiler BCL + Runtime Infrastructure = Kernel Levereras i DLL-filer innehållande CIL Kapitel 1

Undantag (exceptions) Klass- biblioteket tillämpar undantag Var beredd hantera undantag! try { DangerousCall(); … } catch (Exception e) Console.WriteLine(”Oväntat fel…”); Kapitel 1

1.3 Mellanformatet Kompilering ger fil innehållande CIL-kod samt metainformation: ett assembly Metainformationen kallas manifest En applikation består av en eller flera assemblies Assembly kan delas i flera filer: moduler En av dem innehåller då manifestet Kapitel 1

Autentisering Assemblies kan förses med krypterat hashvärde i manifestet krypteras med private key public key bifogas också manifestet VES kan göra motsvarande hash, dekryptera manifestets hash och jämföra Ger mycket säker verifiering av både innehåll och leverantör Kapitel 1

JIT-kompilering CIL-koden kompileras till maskinkod vid programstart Full optimering för aktuell plattform En instans kan vara en process eller en tråd (definieras inte i VES) VES motsvarighet till process är AppDomain Isolerar exekverande program Kapitel 1

1.4 Skräpsamling Objekt som lämnas utan referenser vid exekvering raderas av VES skräpsamlare Ingen motsats till new i C# Algoritmen ospecificerad Därmed okänt när objekt raderas Destruktorer anropas vid ospecificerad tidpunkt någon gång mellan sista referensens försvinnande och programavslut Kapitel 1