Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.



Relevanta dokument
JAR som tar eller zip. Java. Exekvering

Konstruktion av användargränssnitt. Kursvärdering Om Java. Ingen tenta. Förändringar Missar. Lärare

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Lösningar för tenta 2 DAT043,

F4. programmeringsteknik och Matlab

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

DAT043 Objektorienterad Programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Classes och Interfaces, Objects och References, Initialization

Att använda Java SE JDK 6

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Programmering för språkteknologer II, HT2011. Rum

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Lösningsförslag till tentamen

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Föreläsning 8: Exempel och problemlösning

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Ingenjörsfirman Stéen Java Sida 1 av 1

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 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

JAVA Mer om klasser och objektorientering

Lösningar för tenta 3 DAT043,

DEL 1 För att få godkänt på tentan (betyg 3) måste du lösa minst fem av sju uppgifter i denna del.

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

I18N språkoberoende. ResourceBundle. Ikoner. Färg. Javadoc. Meny

TENTAMEN OOP

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

OOP Objekt-orienterad programmering

Föreläsning 10. ADT:er och datastrukturer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

TDDC77 Objektorienterad Programmering

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Att skriva till och läsa från terminalfönstret

Tentamen Programmering fortsättningskurs DIT950

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Fördjupad Java. Undantagshantering. Fel

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Objektorienterad Programmering (TDDC77)

Att använda Java SE JDK 6

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Design och konstruktion av grafiska gränssnitt

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Det finns många flaggor till g++,

Design och konstruktion av grafiska gränssnitt

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

Algoritmer. Två gränssnitt

Föreläsning 9: Arv och UML

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

MVC-mönstret. model-view-control i Swing

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

Laboration 10 - Eclipse

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

PROGRAMMERINGSTEKNIK TIN212

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

OOP Omtenta

12 Metaprogrammering i Java

Tentamen. Lösningsförslag

Språkkonventioner och redigering av tal.

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Transkript:

Introduktion Upplägg Kursen heter konstruktion, ej design eller formgivning. det handlar främst om att lära sig att bygga gränssnitt som är sunda den är praktiskt orienterad; vetenskapliga teorier finns, men vi ska lära oss genom praktiska övningar Inlupp x 3 Ej tenta Gruppträffar, minst 1 timme per vecka. Obligatoriska. både redovisning och handledning Ni: kod, skärmdump, tidsredovisning, frågor Jag: exempel, svar, Föreläsningar: valfria, uppgiftutdelning, enklare genomgång av teori Examination Mål Aktivitet och visad förståelse på gruppträffar Personlig tidsredovisning Gruppens sammanlagda resultat Presentation/dokumentation av lösningar Betyg: 3, 4, eller 5 Efter kursen ska ni: på egen hand kunna implementera ett komplext grafiskt gränssnitt förstå hur gränssnitt uppdaterar sig själva, om rätt gjorda veta hur man bäst kopplar ihop logik med presentation kunna göra avbrottsstyrda applikationer Konsekvenser Java Ni kommer lära er Java Ni blir buzz word compliant +Ert värde stiger rejält Ni inser att allt annat än Java är omöjligt Ni blir en hopplös frälst fanatiker Alla moment görs i Java Gränssnittsbiblioteket heter Java Swing Detta är ej en kurs i objektorientering För att lära sig Java så är det viktigt med egna studier och försök En seriös initial insats är värd mycket om man inte redan kan Java 1

Nu då? Nästa steg Lär er Java Installera Java SDK på egen dator Skaffa en bok, t.ex Bruce Eckel, Thinking in Java Prova kod Övningsuppgifter ren Java med Swing www.hci.uu.se/courses/1it110/vt02/ gruppindelning 5 personer/grupp gruppträffar 1 timme varje torsdag, 2 grupper samtidigt Uppgift 1 (kommer sist under dagen) Inluppar Epostas till publikt arkiv Packas som JAR-fil Givet namn på JAR-filen Förbestämd struktur javadoc time screenshot Körbar Java 101 JAR som tar eller zip Make Används för att packa ihop en mängd filer jar cvf pack.jar /home/e/inlupp1 jar xvf pack.jar Kan vara körbar Fil manifest + class-filer på rätt ställe Main-Class: com.foo.start java jar foo.jar Verktyg för att kompilera stora mängder filer vill inte kompilera i onödan Används också av bekvämlighet Filen ska heta Makefile Kan vara enkel eller hur komplicerad som helst! http://www.gnu.org/software/make/make.html 2

Make - exempel Java #JAVAC=jikes JAVAC=javac all=t1 t1: t2 $(JAVAC) t1.java t2: clean $(JAVAC) t2.java clean: rm *.class Ett objektorienterat språk, påminner mycket om C och C++. Enkelt att lära enkel syntax inga pekare garbage-collection färdiga bibliotek med (massor!) kod manualer alltid on-line Exekvering Utrustning (Win) Kompilera javac Foo.java Köra java Foo Java SDK (1.3) java.sun.com Editor (xemacs, emacs, ) www.xemacs.org Makefile/bat/script (underlättar mycket) http://sources.redhat.com/cygwin/ setup.exe Exempel på utseende Hemlig eller offentlig public class Person { private String name; public Person(String s) { name = s; public String getname() { return name; public void sayhi(string s) { public String name; private int phone; protected Address adr; int bar = 42; // friendly se kap. 5, Eckel 3

Skapa objekt Constructor Car volvo = new S80( red ); Vector v = new Vector(); new Person(new Name( erik )); public class Car { public String model; private String color; public Car(String color, String model) { this.model = model; this.color = color; Constructor Primitiver Car c = new Car( blue, SAAB ); int, float, long, char, Integer, Float, Long, Effektivitetsskäl Scope Scope Fel i Java! { int x = 12; { int x = 17; Objekt försvinner av sig självt { String s = new String( Hej ); // s är nu borta. helt OK. 4

Klass & attribut Attribut public class Car { public String model; private String color; Måste vara i en fil som heter Car.java Car c = new Car(); c.model = Volvo ; c.color = Green ; // ok // fel Metoder Metoder public class Car { private String color; public void setcolor(string color) { this.color = color; Car c = new Car(); c.setcolor( Blue ); Returvärden Returnvärden public class Car { public int maxspeed() { return 250; Car c = new Car( blue, SAAB ); int max = c.maxspeed(); 5

Package Static Ett sätt att packetera kod för att undvika krockar, visa vem som är ägare, visa hur koden är strukturerad com.volvo.salary com.sun.http.server com.borland.jbuilder.ui.menu Används ihop med import Speciellt fall då ett attribut bör finnas oavsett om objektet är skapat eller ej. public class Integer { public static int MAX = 12345678; if (salary > Integer.MAX) // yahoo! Debug Kommentarer System.out.println( My value is = + val); // this is a one-line comment /* two lines of bad comments */ /* *better to * write a * on each line */ Kommentarer Namngivning /** A class comment */ public class doctest { /** A variable comment */ public int i; /** A method comment */ public void f() { getname() setmaxoflines(int i) longname 6

Eckel Ärvning Nu har vi gått igenom 133 sidor... class Student extends Person { private String studyprogram = ITP ; Finns bara enkel ärvning (extends)! Man kan uppfylla flera interface (implements): class Student implements Person, Poor { private String studyprogram = ITP ; Interface, kap 8 interface Car { int MAXSPEED = 250; // public, ej friendly void brake(); import java.net.*; import java.util.*; public class UrlStat { public static void main(string[] args) { try { URL url = new URL(args[0]); URLConnection conn = url.openconnection(); System.out.println("getContentType() " + conn.getcontenttype() ); catch (Exception e) { e.printstacktrace(); Klasser, nästlade Klasser: composition class A { int i; // inner class class B { int k = 0; A { B b = new B(); You simply create objects of your existing class inside the new class // Bil.java class Hjul { int antal = 4; public class Bil { private Hjul hjul = new Hjul(); 7

Klasser: inheritance UrlStat class Bil { // public class Volvo extends Bil { /// public class UrlStat { UrlStat(String u) { try { url = new URL(u); catch (IOException e) { log("error"); e.printstacktrace(); printstat(url); public void printstat(url url) { if (url!= null) { try { URLConnection conn = url.openconnection(); System.out.println("getContentEncoding() " + conn.getcontentencoding()); System.out.println("getContentType() " + conn.getcontenttype() ); System.out.println("getExpiration() " + new Date(conn.getExpiration())); System.out.println("getDate() " + new Date(conn.getDate())); System.out.println("getContentLength() " + conn.getcontentlength()); System.out.println("getLastModified() " + new Date(conn.getLastModified())); catch (Exception e) { e.printstacktrace(); Javadoc Literate programming, Knuth Swing Kap. 13 + SDK online docs: JPanel BorderLayout JLabel JButton JTextField 8