Exempel på spelprogrammering i java.
|
|
- Malin Håkansson
- för 7 år sedan
- Visningar:
Transkript
1 Exempel på spelprogrammering i java
2 Chatten?
3 Overloading Vi kan ha flera olika metoder med samma namn Dessa måste i så fall skiljas genom olika signaturer: parametrarnas typ och antal int sum (int n1, int n2) { Exempel return n1+n2; int sum(int n1, int n2, int n3) { return n1+n2+n3;
4 int sum (int n1, int n2) { return n1+n2; int sum(int n1, int n2, int n3) { return n1+n2+n3; sum(2,7); sum(3,5,9);
5 int sum (int n1, int n2) { return n1+n2; int sum(int n1, int n2, int n3) { return n1+n2+n3; sum(2,7); Anropar denna sum(3,5,9);
6 int sum (int n1, int n2) { return n1+n2; int sum(int n1, int n2, int n3) { return n1+n2+n3; sum(2,7); sum(3,5,9); Anropar denna
7 int sum (int n1, int n2) { return n1+n2; int sum(int n1, int n2, int n3) { return n1+n2+n3; Rätt overloadvariant bestäms av signaturen: sum(2,7); parametrarnas antal och typ sum(3,5,9); Anropar denna
8 Overloading exempel Likartade uppgifter på olika parametertyper (tex println())
9 Overloading exempel Defaultvärden för parametrar (tex JFrame())
10 Tumregler Se upp när du använder en metod i något bibliotek att du verkligen använder rätt overloadvariant. Undvik att skriva egna overloaded metoder. Det förvirrar mest.
11 Klasshierarkier Sanningen bakom extends Ett ovärdeligt sätt att strukturera stora program
12 Klasshierarkier Sanningen bakom extends Ett ovärdeligt sätt att strukturera stora program Ganska ovärt för små program
13 Biblioteksanvändning: Subklassning Ex: gör en egen variant av JFrame, med extra metoder class Biljard extends JFrame {... Biljard () { setlayout(...);... Vi kan använda och definiera om alla metoder i JFrame
14 Arv (inheritance) Givet en klass A kan vi definiera en underklass B med ordet extends i klasshuvudet. Underklassens objekt ärver då allt från överklassen: class A { int x; void f(int z) {... class B extends A { int y;... b = new B(); if (b.x == b.y)... c = b.f(0);
15 Arv (inheritance) Givet en klass A kan vi definiera en underklass B med ordet extends i klasshuvudet. Underklassens objekt ärver då allt från överklassen: class A { int x; void f(int z) {... class B extends A { int y;... b = new B(); if (b.x == b.y)... c = b.f(0);
16 class A class B extends A p y g f z h p g f new B() h y z
17 extends = specialisering Exempel class Ball {... metoder för att rita, flytta, krocka etc class QueueBall extends Ball {... metoder för att skjuta iväg bollen
18 Klasshierarkier En underklass kan i sig användas som överklass till en ännu mer specialiserad klass: class Business {... class RetailBusiness extends Business {... class KMart extends RetailBusiness {... Här ärver KMart både från RetailBusiness och Business
19 class A class B extends A class C extends B p y q g z v f h p g f new C() h y z q v
20 !"#$%&##' 3&,*$4!"#$%&##' /&+0$-&!"#$%&##' ()*+,' )*-.#' ($%12#' Single inheritance: Varje klass har bara en omedelbar överklass som den ärver från. (Java har single inheritance. Tex Python och C++ har multiple inheritance). Arv går i flera led. Om inget sägs är den speciella klassen Object överklass.
21
22 Overriding Om en metod som finns i överklassen definieras om i underklassen gäller definitionen i underklassen. Detta kallas overriding. class A { int x; void f(int z) {... class B extends A { int y; void f(int z) {... c = b.f(0);
23 Overriding Om en metod som finns i överklassen definieras om i underklassen gäller definitionen i underklassen. Detta kallas overriding. class A { int x; void f(int z) {... class B extends A { int y; void f(int z) {... c = b.f(0);
24 class A class B extends A p h g f z h p g f new B() h z
25 Exempel JPanel definierar en metod paintcomponent(). Alla underklasser till JPanel ärver denna. Skriver vi ingen ny sådan metod i underklassen så finns den ursprungliga (som ritar en tom yta). Vi kan göra en override och definiera en egen paintcomponent() som innehåller önskad grafik
26 final Om överklassen deklarerat en metod final så får man inte göra override på den i en underklass. class A { int x; final void f(int z) {... class B extends A { int y; void f(int z) {... Detta används för att hindra omdefinitioner av kritiska metoder i stora system
27 super Om man definierat om en metod i underklassen men ändå vill använda överklassens metod, använd super. class A { int x; void f(int z) {... class B extends A { int y; void f(int z) {... void g() { y = f(0); y = super.f(0);
28 super Om man definierat om en metod i underklassen men ändå vill använda överklassens metod, använd super. class A { int x; void f(int z) {... class B extends A { int y; void f(int z) {... void g() { y = f(0); y = super.f(0);
29 super Om man definierat om en metod i underklassen men ändå vill använda överklassens metod, använd super. class A { int x; void f(int z) {... class B extends A { int y; void f(int z) {... void g() { y = f(0); y = super.f(0);
30 Exempel class A extends JPanel { override void paintcomponent(graphics g) { super.paintcomponent(g)...
31 Konstruktorer I underklassens konstruktor lägger Java alltid automatiskt in ett anrop till överklassens konstruktor först. class A { int z; A() { z = 0; class B extends A { int y; B() { y = 1; b = new B(); Här har b.z värdet 0 och b.y värdet 1 eftersom både As och Bs konstruktorer har använts
32 Om man vill får man i underklassens konstruktor göra ett anrop till överklassens konstruktor med notationen super(). Detta måste då ligga först i konstruktorn. Vanlig användning: för att använda rätt overloadvariant av överklassens konstruktor
33 Utan super class A extends JFrame { A() {... Inget anrop till JFrames konstruktor. Då sker automatiskt ett anrop till JFrame(), dvs det skapas ett fönster utan titel
34 Utan super Med super class A extends JFrame { A() {... class A extends JFrame { A() { super( Titel );... Inget anrop till JFrames konstruktor. Då sker automatiskt ett anrop till JFrame(), dvs det skapas ett fönster utan titel Ett anrop till JFrames konstruktor med parametern Titel. Detta innebär ett anrop till JFrame( Titel ), dvs det skapas ett fönster med rubriken Titel.
35 Abstrakta metoder En abstrakt metod deklareras med ordet abstract och innehåller enbart metodhuvud. Ingen metodkropp! abstract void moveto(position pos); Detta definierar metodens signatur (dvs resultattyp och typ av parametrar). Det definierar inte metodens beteende. En abstrakt metod kan inte exekveras.
36 Varför abstrakta metoder? Du gör en klass (tex Piece) där du tänker dig underklasser (tex King, Queen, Rook,...) Där finns en metod canmoveto() som avgör om pjäsen kan gå till en viss ruta. Varje underklass måste ha en canmoveto(), men det finns inget meningsfullt default!
37 Lösning 1 (inte bra): definiera canmoveto() i Piece med ett meningslöst default. Alla underklasser måste göra en override. class Piece { boolean canmoveto(position pos) { return false;
38 Lösning 1 (inte bra): definiera canmoveto() i Piece med ett meningslöst default. Alla underklasser måste göra en override. class Piece { boolean canmoveto(position pos) { return false; Nackdel: i en underklass kan vi glömma att göra override på canmoveto(), och då oavsiktligt utnyttja det meningslösa defaultet
39 Lösning 2 (inte heller bra): definiera inte canmoveto() i Piece alls - den definieras bara i underklasserna
40 Lösning 2 (inte heller bra): definiera inte canmoveto() i Piece alls - den definieras bara i underklasserna Nackdel: Det betyder att canmoveto() inte kan användas i Piece class Piece {... boolean canmoveatall() { for (pos:allpositions) { if (canmoveto(pos)) return true; return false; kräver att canmoveto() definierats i Piece
41 Vi vill kunna använda canmoveto() i Piece utan att definiera den, och lita på att alla underklasser definierar den
42 Lösning 3 (mycket bättre): definiera canmoveto() i Piece som abstrakt
43 Lösning 3 (mycket bättre): definiera canmoveto() i Piece som abstrakt abstract class Piece { abstract boolean canmoveto(position pos); boolean canmoveatall() { for (pos:allpositions) { if (canmoveto(pos)) return true; return false; OK! Fördel: En underklass måste göra en egen canmoveto(). I Piece får vi använda canmoveto()
44 Skilj mellan abstrakta och tomma metoder! abstract void moveto(position pos); Metoden moveto finns med denna signatur void moveto(position pos) { ; Metoden moveto gör ingenting
45 Abstrakta klasser En klass som har abstrakta metoder måste deklareras abstract: abstract class Piece { abstract boolean canmoveto(position pos);...
46 En abstrakt klass får inte instansieras! mypiece = new Piece() Den enda användningen är som överklass till mer specialiserade klasser class King extends Piece {... Underklassen kan ge definitioner av alla överklassens abstrakta metoder class King extends Piece { boolean canmoveto(position pos) {...
47 abstract class A class B extends A p g g f z h p g f new B() h z
48 En abstrakt klass får innehålla både vanliga och abstrakta metoder. Om någon metod är abstrakt är klassen abstrakt. Om en underklass inte implementerar alla abstrakta metoder blir underklassen också abstrakt.
49 abstract class A abstract class B extends A p g z f h new B()
50 Sammanfattning: Abstrakta klasser är ett sätt att låta java hålla reda på vilka metoder man måste implementera i en underklass
51 Övning I ett schackspel finns den (abstrakta) klassen Piece med sex underklasser som svarar mot de sex typerna av spelpjäser (kung, dam, torn, löpare, springare, bonde). Ge exempel på: Metoder som finns i Piece och som ärvs av alla underklasser Abstrakta metoder i Piece som definieras i underklasserna Metoder som bara finns i någon underklass
52 Abstrakta klasser vs interface
53 Abstrakta klasser vs interface I en abstrakt klass får alla metoderna vara abstrakta.
54 Abstrakta klasser vs interface I en abstrakt klass får alla metoderna vara abstrakta. Klassen säger då ingenting om något beteende alls, utan bara om en signatur: vilka metoder som ska finnas och vilka typer de och deras parametrar har.
55 Abstrakta klasser vs interface I en abstrakt klass får alla metoderna vara abstrakta. Klassen säger då ingenting om något beteende alls, utan bara om en signatur: vilka metoder som ska finnas och vilka typer de och deras parametrar har. En signatur är precis det som man behöver veta om en klass för att kunna anropa metoderna.
56 Abstrakta klasser vs interface I en abstrakt klass får alla metoderna vara abstrakta. Klassen säger då ingenting om något beteende alls, utan bara om en signatur: vilka metoder som ska finnas och vilka typer de och deras parametrar har. En signatur är precis det som man behöver veta om en klass för att kunna anropa metoderna. För att definiera signaturer är det bättre att använda interface än abstrakta klasser
57 interface Interface används för att definiera signaturer. Ett interface ser ut som en klassdeklaration men med ordet interface istället för class. Den innehåller bara abstrakta metoder. Metoderna blir automatiskt abstrakta - man behöver inte skriva abstract
58 interface A f g interface A { void f (int i); boolean g(); String h(int i, int j); h new A() Liksom en abstrakt klass får ett interface inte instansieras.
59 implements
60 implements För ett interface används ordet implements (och inte extends): om A är ett interface kan man skriva
61 implements För ett interface används ordet implements (och inte extends): om A är ett interface kan man skriva class B implements A
62 implements För ett interface används ordet implements (och inte extends): om A är ett interface kan man skriva class B implements A Eftersom A är ett interface och inte en klass finns inget att ärva. Allt i A är abstrakt.
63 implements För ett interface används ordet implements (och inte extends): om A är ett interface kan man skriva class B implements A Eftersom A är ett interface och inte en klass finns inget att ärva. Allt i A är abstrakt. Istället gör ordet implements ett åtagande: alla abstrakta metoder i A måste implementeras i B. Det får dessutom finnas ytterligare saker i B, men åtminstone metoderna i A måste finnas.
64 implements För ett interface används ordet implements (och inte extends): om A är ett interface kan man skriva class B implements A Eftersom A är ett interface och inte en klass finns inget att ärva. Allt i A är abstrakt. Istället gör ordet implements ett åtagande: alla abstrakta metoder i A måste implementeras i B. Det får dessutom finnas ytterligare saker i B, men åtminstone metoderna i A måste finnas. implements är alltså ett sätt att i klasshuvudet ange en del av klassens signatur
65 class B interface A implements A f g h p f g h
66 class B interface A implements A f g h p f g
67 En klass kan implementera flera interface och måste då implementera alla abstrakta metoder i interfacen interface A interface B interface C f g h p class D implements A, B, C f g h p
68 Exempel interface MouseListener { void mouseclicked(mouseevent event); void mousepressed(mouseevent event); void mousereleased(mouseevent event); void mouseentered(mouseevent event); void mouseexited(mouseevent event);
69 Exempel I klassen JPanel finns en metod addmouselistener() Den tar som enda parameter ett objekt som ska vara en muslyssnare För att det objektet verkligen säkert ska fungera måste det ha metoderna mouseclicked() etc. Alltså, när man skriver addmouselistener(m) måste man vara säker på att m har sådana metoder. Det är man om m är från en klass som implementerar interfacet MouseListener
70 implements vs extends Använd implements om interface och extends om (abstrakta) klasser En (abstrakt) klass får innehålla också riktiga metoder. Ett interface får bara ha abstrakta metoder. Java har single inheritance: En klass får vara underklass till bara en annan klass En klass får implementera flera interface
71 interface A interface B abstract class C f g h p h q class D extends C implements A, B f g p Korrekt?
72 Exempel class MyPanel extends JPanel implements MouseListener, KeyListener { Vi definierar en klass som ärver JPanel. Det ger oss massor av metoder åt grafikhållet Vi måste definiera metodeterna mouseclicked(), keypressed () etc för att uppfylla interfacen. Vi får använda objekt instansierade av MyPanel som parametrar vid anrop till addmouselistener() och addkeylistener()
73 Encapsulation Namn: identifierar sådant som variabler, metoder, klasser,... Namn skapas vid motsvarande deklaration
74 Encapsulation Namn: identifierar sådant som variabler, metoder, klasser,... Namn skapas vid motsvarande deklaration Scope ( räckvidd ) för ett namn: den del av koden där namnet kan användas.
75 Encapsulation Namn: identifierar sådant som variabler, metoder, klasser,... Namn skapas vid motsvarande deklaration Scope ( räckvidd ) för ett namn: den del av koden där namnet kan användas. Encapsulation: Ett sätt att begränsa namnscope till att bara omfatta de ställen där namnen behöver användas
76 Encapsulation Namn: identifierar sådant som variabler, metoder, klasser,... Namn skapas vid motsvarande deklaration Scope ( räckvidd ) för ett namn: den del av koden där namnet kan användas. Encapsulation: Ett sätt att begränsa namnscope till att bara omfatta de ställen där namnen behöver användas Fördel: Förhindrar felaktig användning Need to know - där namnen inte behövs är de heller inte tillgängliga
77 Lokala variabler och parametrar Scope = den metod eller kodblock där de deklareras Men vilket scope har klassernas instansvariabler och metoder?
78 Scope av metoder och instansvariabler Det finns några (4 st) olika möjligheter Programmeraren bestämmer själv när metoden/variabeln deklareras!
79 1. Public Deklarera public access genom ordet public Innebär att scope = hela universum Användningfall: 1. Där du måste, tex main(), eller i metoder som implementerar interface public static void main ( När du gjort ett programpaket och vill göra delar av det tillgängligt för andra program
80 2. Protected Deklarera protected access genom ordet protected Innebär att scope = denna package (dvs denna fil, och andra med samma package deklaration) samt alla underklasser till klassen den förekommer Användningfall: Inga (undvik den)
81 3. Package Deklarera package access genom att inte skriva något särskilt i deklarationen Innebär att scope = denna package (dvs denna fil, och andra med samma package deklaration) Användningfall: För variabler och metoder som måste kunna nås av det egna programmet utanför den egna klassen final static int SIZE = 500;
82 4. Private Deklarera private access genom ordet private Innebär att scope = denna klass Användningfall: För variabler och metoder som inte behöver nås utanför den egna klassen private Position pos;
83 Sammanfattning För varje metod/variabel, ta en stund och fundera över: Om den inte ska användas utanför klassen, skriv private I några specialfall, skriv public Om den aldrig får ändras eller overridas, skriv final Om den är gemensam för alla klassens instanser eller saknar vettigt objekt, skriv static
84 Nästlade klasser En klass kan ligga inuti en annan klass. class Table {... class Position {... Innebär: Position blir en del av Table - har ingen mening utan Table. Är ett sätt att gruppera klasser. En nästlad klass kan ges scope på samma sätt som instansvariabler (private/public etc)
85 Static nested classes class Table {... static class Position {... För att skapa en ny Position utanför Table skriv Klassen Position hör till hela klassen Table. Alla objekt i Table har samma klass Position, dvs i Position får man inte använda instansvariabler i Table. new Table.Position() yttre klass nästlad klass
86 Inner classes Nästlad klass som inte är static kallas inner class class Table {... class Position {... Klassen Position hör till objekt av typ Table. Olika objekt i Table har olika klasser Position, dvs i Position får man använda instansvariabler i Table. För att skapa en ny Position utanför Table skriv new thetable.position() objekt som instansierar yttre klass nästlad klass
87 Lokala klasser Finns också: Klass deklarerad inuti en metod Scope = den metoden Anonyma klasser Klassen ges inget namn. Typen är ett interface. Har inget scope, kan inte refereras
88 Anonym klass exempel Hittills: En ActionListener behöver en ny klass: button.addactionlistener(new mylistener()); class mylistener implements ActionListener { public void actionperfored(actionevent e) { // do something Interface Metod som uppfyller interfacet
89 Alternativ med anonym klass: Interface button.addactionlistener(new ActionListener() { public void actionperfored(actionevent e) { // do something. ); Metod som uppfyller interfacet Slipper hitta på klassnamn Metoden actionperformed() definieras precis där lyssnaren registreras
90 Sista projektet Liten ändring i stort program Jämfört med tidigare: ganska lite kod att skriva Svårigheten är att lista ut vad och var! Arbeta systematiskt. Testkör efter varje liten ändring. Lycka Till!!
91 Reflektion
92 Programmering 10 hp Välkomna! Vi kommer att lära oss Skriva enkla men nyttiga program Läsa, begripa och ändra i större program Använda moderna utvecklingsmedel Språken Python och Java Hur datorn fungerar Första föreläsningens första bild
93 Programmering STS studenter (inget avhopp!!) Kursansvarig, 2 doktorander, 6 äldre studenter Nästa höst kan 15 föreläsningar (2h) det vara du! 30 handledda labpass (4h, 2st 2h) varav 15 med examination Individuellt prov (2h)
94 Viktiga erfarenheter bryta ner ett större problem i mindre delar och lösa systematiskt Google är din vän RTFM Studenternas egna ord! Förstå först, gör sen!! större förståekse över hur saker och ting fungerar Behåll lugnet. (Det löser sig) Ta hjälp av dina kompisar Dissa Stocken! Fördela tiden bra Var inte rädd för att be om hjälp!! Tänka metodiskt och strukturerat System.out.println ( = sout + tab)
95 Programmering är inte att knappa in kod
96 Programmering är inte att knappa in kod Ex: Ett projekt tar 16 timmar
97 Programmering är inte att knappa in kod Ex: Ett projekt tar 16 timmar Resulterar i 500 rader kod
98 Programmering är inte att knappa in kod Ex: Ett projekt tar 16 timmar Resulterar i 500 rader kod 16*60/500 = 2, dvs en rad varannan minut
99 Programmering är inte att knappa in kod Ex: Ett projekt tar 16 timmar Resulterar i 500 rader kod 16*60/500 = 2, dvs en rad varannan minut Att skriva en rad tar max 10 sekunder
100 Programmering är inte att knappa in kod Ex: Ett projekt tar 16 timmar Resulterar i 500 rader kod 16*60/500 = 2, dvs en rad varannan minut Att skriva en rad tar max 10 sekunder Dvs 10/120 = 8% av tiden är att skriva kod
101 Programmering är inte att knappa in kod Ex: Ett projekt tar 16 timmar Resulterar i 500 rader kod 16*60/500 = 2, dvs en rad varannan minut Att skriva en rad tar max 10 sekunder Dvs 10/120 = 8% av tiden är att skriva kod Alltså: Det är ineffektivt att optimera koden så att den är lätt att skriva
102 Planering - kodning - testning Arbeta i små steg
103 Kodhygien Uppdelning i små metoder / funktioner Vettig användning av whitespace (radbyte och indentering) Bra namnval
104 Modern programmering är att använda stora plattformar Exempelvis Swing, netbeans Även gigantiska sådana är överkomliga Försök aldrig lära allt utantill Lär dig ett hörn där du vet hur det fungerar Acceptera att det finns sådant du inte vet hur det fungerar Vet hur man ska slå upp och prova
105 Kursmål Efter godkänd kurs ska den studerande kunna:
106 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
107 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
108 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
109 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
110 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
111 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
112 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
113 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
114 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
115 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
116 Kursmål Efter godkänd kurs ska den studerande kunna: analysera enklare problem och designa lösningar, formulera en strategi för att hantera större problem, arbeta med grundläggande datastrukturer såsom listor av olika slag, systematiskt söka efter, tolka och förstå fel som uppstår, behärska de vanligaste primitiverna i imperativa programspråk, bl.a. Java, behärska grunderna i god programkonstruktion i bl.a. en objektorienterad programmeringsstil, överföra tidigare kunskaper till ett nytt programmeringsspråk, läsa, förstå och göra smärre ändringar i stora förelagda program, återanvända kod som konstruerats av andra, förstå olika roller i en programmeringsprocess, övergripande kunna förklara principerna för hur en dator är uppbyggd och arbetar.
117 Resultat Moment Innehåll % klara Pythonkramning Python vs Matlab 97 % Bubblesort Enkla datastrukturer 100 % Vanligaste ordet Algoritmer och strukturer 100 % Epostadresser Algoritmer och strukturer 98 % Assembler Datorns uppbyggnad 100 % Individuellt Python Enklare problem. Arbete under tidpress 95 % Javakramning Python vs Java 95 % Duellen Klassbegreppet 95 % Klockan Swing. Bibliotek. 98 % Biljard Realtidssimulering. 98 % Chat Design av större program 81% hittills Control Penetrera stora program
118 Nu är det snart slut! En föreläsning kvar: gästföreläsning om den mänskliga faktorn i programutveckling Tre labtillfällen Ett reservtillfälle 21/12 (boka tid med mig) Omprov i januari
119 Tack för mig! Vi ses i labbet!
Monday, November 16, Senaste Labben
Senaste Labben Senaste Labben Strålande resultat (mv 4.6)! Senaste Labben Strålande resultat (mv 4.6)! God objektorientering? Senaste Labben Strålande resultat (mv 4.6)! God objektorientering? God kodhygien?
Läs merKlasser som datastrukturer
Klasser som datastrukturer Ex: du vill skicka ett meddelande som består av text (String), avsändarnamn (String), klockslag (två int). Du kan förstås skicka alla dessa efter varandra. Bättre är att bygga
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs merProgrammeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt
Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur
Läs mer2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merTentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
Läs merObjektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering
och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:
Läs merF8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander
F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merGrundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Överlagring (overloading) Arv
Läs merLösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel
Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:
Läs merFöreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser
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) Den nya klassen behåller alla egenskaper som den gamla
Läs merDAT043 - Föreläsning 7
DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar
Läs merUML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
UML Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 UML Unified Modelling Language Grafiskt modelleringsspråk för att beskriva olika aspekter av objektorienterade system. Vi kommer
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merFöreläsnings 11 - GUI, Händelsestyrda program, MVC
Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken
Läs merAbstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.
DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/3 2017 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack Klassen Object
Läs merUML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.
Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Instansiering Åtkomst Abstrakt datatyp UML Överlagring
Läs merI STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else
Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,
Läs merTentamen i Objektorienterad programmering
CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar
Läs merAbstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.
DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/4 2014 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack UML-översikt
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut
Läs merLektion Händelsehanterare
Lektion Händelsehanterare Händelsehanterare kallas även lyssnare. En lyssnare har som uppgift att ta hand om olika händelser som kan inträffa. För att lyssnaren skall reagera på händelser måste den registreras
Läs merUML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.
Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel
Läs merKlasshierarkier - repetition
Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet
Läs merClasses och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Läs merOutline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine
Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Klassen calculator Signatur Calculator
Läs merDagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merTENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merFöreläsning 2, vecka 6: Tillstånd i objektorienterade program (och mera interface)
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 6: Tillstånd i objektorienterade program (och mera interface) Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Terminologi Vad är en klass?
Läs mer"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde
Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande
Läs merTDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Arv Polymorf UML (klassdiagram) 1 Arv Möt tre studenter
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merOutline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.
Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Att instansiera en klass Objekt I Man instansierar (skapar
Läs merTvå designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 8 Två designmönster, MVC och Observer/Observable. Designrekommendation
Läs merMalmö högskola 2008/2009 CTS
Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Läs merJava-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }
Föreläsning 3 Arv Kategorisering Stora program leder till många klasser (tänk liknelsen med en affär med många varor). Att dela in saker i kategorier är en vanlig strategi för att hantera stora komplexa
Läs merObjektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016
Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.
Läs merTENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Läs merFör att hitta filen gå till mappen NetBeansProjects. Välj undermappen med rätt projekt, och sedan undermapp dist. Där ligger.jar-filen.
Java utan netbeans Du har gjort ett program i netbeans Hur exportera det så att andra kan köra det utan att använda netbeans? Välj projektet som main project Högerklicka på det och välj Clean and Build
Läs merClasses och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Läs merInnehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och
Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält
Läs merTentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: 2:a september 200, klockan 8:30-12:30. Plats: V Ansvarig lärare: Katarina Blom, tel 772 10 0. Läraren besöker tentamen kl 9:30
Läs merObjektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015
Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora
Läs merFöreläsningsmaterial (Arv) Skrivet av Andreas Lund
Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Inledning Arv är ett begrepp som är tätt förknippat med objektorientering. Principerna bakom arv är grundade i högst vardagliga relationer mellan olika
Läs merIdag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Läs merIdag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
Läs merObjektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016
Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class
Läs merTentamen ID1004 Objektorienterad programmering May 29, 2012
Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga
Läs merImperativ programmering. Föreläsning 4
Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut
Läs merLaboration 1 - Grunderna för OOP i Java
Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben
Läs merKort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Introduktion HT2 Åtkomst Abstrakt datatyp UML Överlagring
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merTentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.
Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel
Läs merDD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion
DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,
Läs merFöreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Läs merFöreläsning 14: Grafik & mera händelsehantering
TDA 545: Objektorienterad programmering Föreläsning 14: Grafik & mera händelsehantering Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafik läs kap 17 Viktigt i denna föreläsning: att rita
Läs merTENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merJava, klasser, objekt (Skansholm: Kapitel 2)
Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma
Läs merFöreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
Läs merArv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Läs merDet finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Läs merOutline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.
Outline Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vad händer under HT2 Laborationsserie del två I Klasser
Läs merDD1342 Programkonstruktion för F1,
DD1342 Programkonstruktion för F1, 2007-2008 Lappskrivning 2 Tisdag 5/2 2008 kl 14.15 15.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
Läs merInkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private
Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall
Läs merPROGRAMMERINGSTEKNIK TIN212
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:
Läs merpublic och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merTentamen. Lösningsförslag
Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt
Läs merF4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Läs merTyphierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser Hur används hierarkier för att modellera nära relaterade typer? Nu:
Läs merFöreläsning 15: Repetition DVGA02
Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras
Läs merObjektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merOutline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.
Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Signatur public static int parseint (
Läs merIntroduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder
Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i
Läs merLite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Läs merTentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal
Tentamen DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl 14.00 17.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna
Läs merFöreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp
Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser
Läs merVad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes
Vad kännetecknar en god klass F12 Nested & En odelad, väldefinierad abstraktion Uppgiften kan beskrivas kort och tydlig Namnet är en substantiv eller adjektiv som beskriver abstraktionen på ett adekvat
Läs merVad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel
Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans
Läs merOOP Objekt-orienterad programmering
OOP F10:1 OOP Objekt-orienterad programmering Föreläsning 10 Mer om arv och klasshierarkier Interface Hierarkier - många nivåer OOP F10:2 Djur Rovdjur Hovdjur Fåglar Fiskar Björn Kattdjur Ko Lamm Hjort
Läs merITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Läs merTentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:
Tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-01-13, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar: Alex
Läs merKonstruktion av klasser med klasser
Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut
Läs merDI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Läs merAdministrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering
Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad
Läs merArv och polymorfi. Lite terminologi; Basklass eller superklass: En klass som fungerar som bas för vårt arv. Vi skapar nya klasser utifrån den.
Arv och polymorfi Arv och polymorfi är två centrala begrepp i objektorientering. Arvsmekanismen innebär att vi kan skapa nya klasser utifrån redan existerande klasser. Man gör detta med hjälp av nyckelordet
Läs merTentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal
Tentamen DD2385 Programutvecklingsteknik vt 2009 Fredagen den 5 juni 2009 kl 10.00 13.00 Inga hjälpmedel utom penna, sudd och linjal Tentans del I omfattar 22 poäng. Del II har också 22 poäng Preliminära
Läs merFöreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder
Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla
Läs merExempel på användning av arv: Geometriska figurer
(9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014
Läs merFöreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Läs mer