Java Direkt, upplaga 7 Innehåll

Relevanta dokument
Java Direkt, upplaga 5 Innehåll

Java Direkt, upplaga 6 Innehåll

Java Direkt, upplaga 8 Innehåll

Kursplanering Objektorienterad programmering

Ingenjörsfirman Stéen Java Sida 1 av 1

Inre klasser Anonyma klasser Kloning I/O-ramverket. anonyma klasser

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

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit

Innehållsförteckning

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

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

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

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

Språkkonventioner och redigering av tal.

Föreläsning 6. Designmönstret Decorator I/O-ramverket

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

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

Fördjupad Java. Undantagshantering. Fel

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

DAT043 - föreläsning 8

Föreläsning 11 Aktiva objekt och trådar, strömmar, kommunikation DAT043,

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

JAVA Mer om klasser och objektorientering

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

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

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

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

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

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

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

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

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

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser

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

Klasser för grafik och bildhantering

Design och konstruktion av grafiska gränssnitt

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

Föreläsning 15: Repetition DVGA02

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

Objektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

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

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

PROGRAMMERINGSTEKNIK TIN212

Design och konstruktion av grafiska gränssnitt

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

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

F2 Java I/O - strömmar Meddelandesändning med TCP

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

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

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

EDAA01 Programmeringsteknik - fördjupningskurs

Programmeringsteknik II

Kursplanering för EE3D i kursen Programmering 1, 100p.

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

Tentamen , Grundläggande programmering i Java

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Arv och Grafiska Användargränssnitt

OOP Objekt-orienterad programmering

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

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

Nätverksprogrammering. Tekniker för att skriva program som kommunicerar med varandra över ett nätverk. F1 Nätverk och strömmar.

OOP Objekt-orienterad programmering

Enum, mer om Arv, Abstrakta klasser, Polymorfism, Recursion! Förelasning 14!! TDA540 Objektorienterad Programmering!

Design och konstruktion av grafiska gränssnitt

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

Föreläsning 14 Innehåll

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Objektorienterad Programkonstruktion

DAT043 Objektorienterad Programmering

Malmö högskola 2007/2008 Teknik och samhälle

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller

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

OOP Objekt-orienterad programmering

(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

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

SMD 134 Objektorienterad programmering

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

F1 Nätverk och strömmar

GUI Nyckelbeståndsdelar

F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Nätverksprogrammering

1 Grafiska komponenter

Objektorienterad programmering D2

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Parallellism, återblick

Transkript:

Java Direkt, upplaga 7 Innehåll Förord 1 1 Att komma igång 5 1.1 Vad är Java? 5 1.2 Var hittar man information om Java? 7 1.3 Traditionell kompilering, länkning och exekvering 8 1.4 Kompilering och exekvering av Javaprogram 12 1.5 Det första programmet 13 1.6 Användning av dialogrutor för att läsa indata 16 1.7 Användning av dialogrutor för meddelanden 19 1.8 Användning av numeriska variabler 21 1.9 if-satsen 24 1.10 Användning av dialogrutor för val av alternativ 27 1.11 while-satsen 28 1.12 for-satsen 32 1.13 Nästlade repetitionssatser 35 1.14 Ett grafiskt program 36 1.15 En applet 41 1.16 Övningsuppgifter 45 2 Typer, klasser och objekt 47 2.1 Objektorientering 47 2.2 Klassdefinitioner 50 2.3 Variabler 51 2.4 Enkla variabler och inbyggda typer 53 2.4.1 Numeriska typer och uttryck 53 2.4.2 Numeriska literaler 55 2.4.3 Typen boolean 57 2.4.4 Typen char 58 2.5 Referensvariabler 61 2.6 Tilldelning 63 2.7 Metoder 66 2.7.1 Definitioner av metoder 68 2.7.2 Anrop av metoder 71 2.8 Exempel Visning av klockslag 73 2.9 Initieringar av objekt 77 i

2.10 Överlagrade metoder 80 2.11 Standardklassen Point 81 2.12 Standardklassen String 82 2.13 Övningsuppgifter 88 3 Mer om typer och klasser 89 3.1 Paket 89 3.2 Inkapsling och synlighet 94 3.3 Klassvariabler 95 3.4 Klassmetoder 99 3.5 Standardklassen Math 102 3.6 Statisk import 102 3.7 Wrapper classes Omslagsklasser 104 3.8 Arrayer med enkla komponenter 109 3.9 Arrayer med referenser 116 3.10 Listor 117 3.11 Uppräkningstyper 126 3.11.1 Grundläggande egenskaper 126 3.11.2 Avancerade egenskaper 130 3.12 Övningsuppgifter 134 4 Objektorienterad programutveckling 137 4.1 Objektorienterad analys 137 4.2 Objektorienterad design 143 4.3 Objektorienterad programmering 144 4.4 Algoritmer 146 4.5 Relationer i Java 149 4.5.1 Känner-till-relation 149 4.5.2 Har-relation (komposition) 151 4.5.3 Är-relation (arv) 154 4.6 Övningsuppgifter 156 5 Läsning och skrivning 157 5.1 Lokala konventioner 157 5.2 Redigering av utskrifter 158 5.3 Kommandofönster 164 5.4 Avkodning av indata 168 5.4.1 Klassen Scanner 168 5.4.2 Avancerad användning av klassen Scanner 173 5.4.3 Felkontroll 174 5.5 Textfiler 177 5.6 Datum och tider 182 ii

5.6.1 Klassen Date 183 5.6.2 Klassen TimeZone 183 5.6.3 Klassen Calendar 184 5.6.4 Klassen DateFormat 185 5.7 Övningsuppgifter 187 6 Grafiska komponenter 189 6.1 En översikt 189 6.2 JComponent och Container 195 6.3 JLabel 204 6.4 JButton 210 6.5 JToggleButton, JCheckBox och JRadioButton 215 6.6 JPanel 219 6.7 JTextField 221 6.7.1 Inläsning av enkel text 222 6.7.2 Inläsning av numeriska data 224 6.8 JComboBox 227 6.9 Klassen JList 232 6.10 JSlider 240 6.11 JProgressBar 244 6.12 JSpinner 246 6.13 JScrollPane 251 6.14 JTextArea och JTextComponent 254 6.15 JEditorPane 258 6.16 Desktop 261 6.17 Applets 262 6.18 Övningsuppgifter 264 7 Konstruktion av egna grafiska komponenter 267 7.1 Exempel klassen Flight 267 7.2 Grafik 270 7.2.1 Rektanglar 273 7.2.2 Cirklar och ellipser 274 7.2.3 Linjer 274 7.2.4 Bågar och segment 274 7.2.5 Texter 275 7.2.6 Klassen Graphics2D 275 7.3 Klassen CircleDiagram 277 7.4 Utskrifter till skrivare 280 7.5 Övningsuppgifter 284 iii

8 Layout och utseende 285 8.1 Layout Managers 285 8.1.1 FlowLayout 285 8.1.2 GridLayout 286 8.1.3 BorderLayout 288 8.1.4 BoxLayout 289 8.1.5 CardLayout 293 8.1.6 GridBagLayout 294 8.2 JSplitPane 299 8.3 JTabbedPane 302 8.4 Ramar 305 8.4.1 LineBorder 307 8.4.2 EtchedBorder 307 8.4.3 BevelBorder och SoftBevelBorder 308 8.4.4 EmptyBorder 309 8.4.5 MatteBorder 309 8.4.6 TitledBorder 310 8.4.7 CompoundBorder 311 8.5 Look & Feel 311 8.6 Genomskinliga fönster 316 8.7 Icke-rektangulära fönster 317 8.8 Övningsuppgifter 319 9 Mer om arrayer 321 9.1 Sökning och sortering 321 9.2 Ett exempel 325 9.3 Varargs 330 9.4 Parametrar till main 331 9.5 Parametrar till applets 333 9.6 Klasserna StringBuilder och StringBuffer 336 9.7 Multipla relationer 340 9.8 Flerdimensionella arrayer 343 9.9 Övningsuppgifter 347 10 Mer om arv 351 10.1 Definitioner av subklasser 351 10.2 Referenser till subklasser 355 10.3 Dolda instansvariabler 356 10.4 Polymorfism och dynamisk bindning 357 10.5 Konstruktorer vid arv 361 10.6 Objektsamlingar 363 10.7 Abstrakta klasser 366 iv

10.8 Gränssnitt interface 369 10.9 Klassen Class 377 10.10 Klassen Object 382 10.10.1 Metoden tostring 382 10.10.2 Metoden equals 383 10.10.3 Metoden hashcode 388 10.10.4 Metoden clone 389 10.10.5 Metoden finalize 392 10.11 Jämförbara objekt 393 10.11.1 Gränssnittet Comparable och metoden compareto 393 10.11.2 Extern jämförare 395 10.12 Lambda-uttryck och funktionsgränssnitt 398 10.13 Ett objektorienterat exempel 404 10.14 Övningsuppgifter 411 11 Exceptionella händelser 413 11.1 Automatiskt genererade exceptionella händelser 414 11.2 Att själv generera exceptionella händelser 417 11.3 Specifikation av exceptionella händelser 419 11.4 Att fånga exceptionella händelser 421 11.5 try-sats med resurshantering 426 11.6 Övningsuppgifter 428 12 Händelser, lyssnare och handlingar 429 12.1 Programstruktur 430 12.2 Händelseklasser 431 12.3 Lyssnarklasser och lyssnargränssnitt 431 12.4 Adapterklasser 435 12.5 Mus 436 12.6 Tangentbord 443 12.7 Klassen javax.swing.timer 447 12.8 Ett avancerat exempel Tennisspel 453 12.9 Handlingar gränssnittet Action 460 12.10 PropertyChange och Model-View-Controller 467 12.11 Övningsuppgifter 480 13 Aktiva objekt 483 13.1 Trådar 484 13.2 Synkronisering av trådar 490 13.3 Standardklasser för köer 497 13.4 Trådar och Swing 502 13.5 Klassen SwingWorker 504 v

13.6 Övningsuppgifter 514 14 Menyer, fönster och dialogrutor 515 14.1 Menyer 515 14.1.1 Menyrader, menyer och menyalternativ 515 14.1.2 Submenyer 521 14.1.3 Popup-menyer 523 14.1.4 Kortkommandon till menyer 525 14.1.5 Menyer och handlingar 526 14.2 Verktygsfält klassen JToolBar 528 14.3 Gemensamma egenskaper för toppnivåkomponenter 532 14.4 Klassen JFrame 538 14.5 Interna fönster 542 14.6 Dialogrutor 548 14.6.1 Klassmetoder i klassen JOptionPane 549 14.6.2 Objekt av klassen JOptionPane 554 14.6.3 Direkt användning av klassen JDialog 558 14.7 Klassen JFileChooser 560 14.8 Exempel en texteditor 564 14.9 Övningsuppgifter 570 15 Bilder och ljud 571 15.1 Nerladdning av bilder 571 15.2 Metoden drawimage 580 15.3 Ikoner 581 15.3.1 Gränssnittet Icon 581 15.3.2 En enkel ikonklass 582 15.3.3 Ikoner med variabel storlek 584 15.3.4 Bilder med variabel storlek 586 15.4 Rörliga bilder 588 15.5 Ljud i applets 591 15.6 Ljud i fristående applikationer 593 15.7 Övningsuppgifter 594 16 Strömmar och filer 595 16.1 En översikt 596 16.2 Strömmar för inmatning 602 16.2.1 InputStream 602 16.2.2 Reader 604 16.2.3 InputStreamReader 605 16.2.4 FileInputStream 606 16.2.5 FileReader 606 vi

16.2.6 ByteArrayInputStream och CharArrayReader 606 16.2.7 StringReader 607 16.2.8 PipedInputStream och PipedReader 607 16.2.9 FilterInputStream och FilterReader 607 16.2.10 BufferedInputStream och BufferedReader 609 16.2.11 LineNumberReader 610 16.2.12 PushbackInputStream och PushbackReader 610 16.2.13 SequenceInputStream 611 16.3 Strömmar för utmatning 611 16.3.1 OutputStream och Writer 611 16.3.2 OutputStreamWriter 613 16.3.3 FileOutputStream 613 16.3.4 FileWriter 613 16.3.5 ByteArrayOutputStream och CharArrayWriter 614 16.3.6 StringWriter 615 16.3.7 PipedOutputStream och PipedWriter 615 16.3.8 FilterOutputStream och FilterWriter 617 16.3.9 BufferedOutputStream och BufferedWriter 618 16.3.10 PrintStream och PrintWriter 618 16.4 Strömmar med binära data 619 16.4.1 DataInputStream och DataOutputStream 620 16.4.2 ObjectInputStream och ObjectOutputStream 622 16.5 Direktaccessfiler 626 16.6 Klassen File 633 16.7 Övningsuppgifter 636 17 Containerklasser 639 17.1 Generiska programenheter 639 17.1.1 Generiska klasser 639 17.1.2 Generiska metoder 644 17.1.3 Wildcards 646 17.2 Samlingar Gränssnittet Collection 650 17.3 Klassen Collections 652 17.4 Listor 654 17.4.1 Gemensamma egenskaper Gränssnittet List 654 17.4.2 Stackar 655 17.4.3 Implementeringar av listor 656 17.5 Mängder 657 17.5.1 Gemensamma egenskaper Gränssnittet Set 657 17.5.2 Sorterade mängder och klassen TreeSet 658 17.5.3 Klasserna HashSet och LinkedHashSet 660 17.5.4 Klassen EnumSet 661 17.6 Iteratorer 662 vii

17.7 Funktioner för listor och köer 664 17.8 Avbildningstabeller 669 17.8.1 Gemensamma egenskaper Gränssnittet Map 669 17.8.2 Sorterade avbildningstabeller och klassen TreeMap 671 17.8.3 Klasserna HashMap, LinkedHashMap och HashTable 675 17.8.4 Klassen ConcurrentHashMap 679 17.8.5 Klassen EnumMap 680 17.8.6 Klassen Properties 681 17.9 Funktioner för avbildningstabeller 684 17.10 Övningsuppgifter 689 18 Kommunikation 691 18.1 Klassen URL 691 18.2 Portar och sockets 696 18.3 Datagram 698 18.4 Multicast 707 18.5 Uppkopplade förbindelser Client / Server 712 18.6 E-post 719 18.7 Applets och kommunikation 721 18.8 Övningsuppgifter 722 19 Lite av varje 723 19.1 Kommentarer och dokumentation 723 19.2 Fler operatorer 726 19.2.1 Bit-operatorer och binär lagring av heltal 726 19.2.2 Villkorsoperatorn 730 19.3 Fler satser 731 19.3.1 switch-satsen 731 19.3.2 do-satsen 733 19.3.3 Satser med etikett 734 19.3.4 break-satsen 734 19.3.5 continue-satsen 735 19.4 Rekursion 736 19.5 Övningsuppgifter 741 Appendix A Reserverade ord och operatorer 743 Appendix B LATIN_1-koder 745 Sakregister 747 viii