Java Direkt, upplaga 6 Innehåll



Relevanta dokument
Java Direkt, upplaga 5 Innehåll

Java Direkt, upplaga 7 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

Innehållsförteckning

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

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

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

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

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

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

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 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

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa

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

JAVA Mer om klasser och objektorientering

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

DAT043 - föreläsning 8

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

Klasser för grafik och bildhantering

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

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

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

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

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

Design och konstruktion av grafiska gränssnitt

Fördjupad Java. Undantagshantering. Fel

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

Språkkonventioner och redigering av tal.

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

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

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

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

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

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

Föreläsning 15: Repetition DVGA02

EDAA01 Programmeringsteknik - fördjupningskurs

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

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

SMD 134 Objektorienterad programmering

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

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

OOP Objekt-orienterad programmering

Design och konstruktion av grafiska gränssnitt

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

Föreläsning 14 Innehåll

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

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

Klasshierarkier - repetition

Arv och Grafiska Användargränssnitt

PROGRAMMERINGSTEKNIK TIN212

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

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

1 Grafiska komponenter

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

Design och konstruktion av grafiska gränssnitt

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

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

OOP Objekt-orienterad programmering

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

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

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

Imperativ programmering. Föreläsning 4

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

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

(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

Objektorienterad Programkonstruktion

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

Agenda. Objektorienterad programmering Föreläsning 13

Tentamen , Grundläggande programmering i Java

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

Programmeringsteknik II

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

F1 Nätverk och strömmar

GUI Nyckelbeståndsdelar

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

Objektorienterad programmering D2

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

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

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

LiTHehack? Här? lithehack se koma Tisdagar och torsdagar

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

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

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

Design och konstruktion av grafiska gränssnitt

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

DAT043 Objektorienterad Programmering

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

Mer om grafiska komponenter. Händelsestyrda program

Transkript:

Java Direkt, upplaga 6 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? 8 1.3 Traditionell kompilering, länkning och exekvering 8 1.4 Kompilering och exekvering av Javaprogram 12 1.5 Det första programmet 14 1.6 Användning av dialogrutor för att läsa indata 18 1.7 Användning av dialogrutor för meddelanden 20 1.8 Alternativa sätt att starta Javaprogram 23 1.9 Användning av numeriska variabler 23 1.10 if-satsen 26 1.11 Användning av dialogrutor för val av alternativ 29 1.12 while-satsen 30 1.13 for-satsen 34 1.14 Nästlade repetitionssatser 37 1.15 Ett grafiskt program 39 1.16 En applet 44 1.17 Övningsuppgifter 49 2 Typer, klasser och objekt 51 2.1 Objektorientering 51 2.2 Klassdefinitioner 54 2.3 Variabler 55 2.4 Enkla variabler och inbyggda typer 57 2.4.1 Numeriska typer och uttryck 57 2.4.2 Typen boolean 60 2.4.3 Typen char 62 2.5 Referensvariabler 65 2.6 Tilldelning 67 2.7 Metoder 69 2.7.1 Definitioner av metoder 72 2.7.2 Anrop av metoder 74 2.8 Exempel Visning av klockslag 77 2.9 Initieringar av objekt 81 i

2.10 Överlagrade metoder 84 2.11 Standardklassen Point 85 2.12 Standardklassen String 86 2.13 Övningsuppgifter 92 3 Mer om typer och klasser 93 3.1 Paket 93 3.2 Inkapsling och synlighet 99 3.3 Klassvariabler 100 3.4 Klassmetoder 104 3.5 Standardklassen Math 106 3.6 Statisk import 107 3.7 Wrapper classes Omslagsklasser 109 3.8 Fält med enkla komponenter 113 3.9 Fält med referenser 120 3.10 Uppräkningstyper 122 3.10.1 Grundläggande egenskaper 122 3.10.2 Avancerade egenskaper 126 3.11 Övningsuppgifter 130 4 Objektorienterad programutveckling 133 4.1 Objektorienterad analys 133 4.2 Objektorienterad design 139 4.3 Objektorienterad programmering 139 4.4 Algoritmer 142 4.5 Relationer i Java 145 4.5.1 Känner-till-relation 145 4.5.2 Har-relation (komposition) 147 4.5.3 Är-relation (arv) 150 4.6 Övningsuppgifter 152 5 Läsning och skrivning 153 5.1 Lokala konventioner 153 5.2 Redigering av utskrifter 154 5.3 Kommandofönster 160 5.4 Avkodning av indata 164 5.4.1 Klassen Scanner 164 5.4.2 Avancerad användning av klassen Scanner 169 5.4.3 Felkontroll 170 5.5 Textfiler 173 5.6 Datum och tider 178 5.6.1 Klassen Date 179 ii

5.6.2 Klassen TimeZone 179 5.6.3 Klassen Calendar 180 5.6.4 Klassen DateFormat 181 5.7 Övningsuppgifter 183 6 Grafiska komponenter 185 6.1 En översikt 185 6.2 JComponent och Container 192 6.3 JLabel 200 6.4 JButton 206 6.5 JToggleButton, JCheckBox och JRadioButton 211 6.6 JPanel 215 6.7 JTextField 217 6.7.1 Inläsning av enkel text 218 6.7.2 Inläsning av numeriska data 220 6.8 JComboBox 223 6.9 JSlider 228 6.10 JProgressBar 232 6.11 JSpinner 234 6.12 JScrollPane 239 6.13 JTextArea och JTextComponent 242 6.14 JEditorPane 246 6.15 Desktop 249 6.16 Applets 250 6.17 Övningsuppgifter 252 7 Konstruktion av egna grafiska komponenter 255 7.1 Exempel klassen Flight 255 7.2 Grafik 258 7.2.1 Rektanglar 261 7.2.2 Cirklar och ellipser 262 7.2.3 Linjer 262 7.2.4 Bågar och segment 262 7.2.5 Texter 263 7.2.6 Klassen Graphics2D 263 7.3 Klassen CircleDiagram 265 7.4 Utskrifter till skrivare 268 7.5 Övningsuppgifter 272 8 Layout och utseende 273 8.1 Layout Managers 273 8.1.1 FlowLayout 273 iii

8.1.2 GridLayout 274 8.1.3 BorderLayout 276 8.1.4 BoxLayout 277 8.1.5 CardLayout 281 8.1.6 GridBagLayout 282 8.2 JSplitPane 287 8.3 JTabbedPane 290 8.4 Ramar 293 8.4.1 LineBorder 295 8.4.2 EtchedBorder 295 8.4.3 BevelBorder och SoftBevelBorder 296 8.4.4 EmptyBorder 297 8.4.5 MatteBorder 297 8.4.6 TitledBorder 298 8.4.7 CompoundBorder 299 8.5 Look & Feel 299 8.6 Övningsuppgifter 304 9 Mer om fält och listor 305 9.1 Sökning och sortering 305 9.2 Ett exempel 309 9.3 Varargs 314 9.4 Parametrar till main 315 9.5 Parametrar till applets 317 9.6 Klasserna StringBuilder och StringBuffer 320 9.7 Listor 324 9.8 Multipla relationer 332 9.9 Flerdimensionella fält 335 9.10 Klassen JList 339 9.11 Ö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 10.8 Gränssnitt interface 369 10.9 Klassen Class 375 10.10 Klassen Object 380 10.10.1 Metoden tostring 381 iv

10.10.2 Metoden equals 382 10.10.3 Metoden hashcode 386 10.10.4 Metoden clone 388 10.10.5 Metoden finalize 391 10.11 Jämförbara objekt 392 10.11.1 Gränssnittet Comparable och metoden compareto 392 10.11.2 Extern jämförare 395 10.12 Ett objektorienterat exempel 397 10.13 Övningsuppgifter 404 11 Exceptionella händelser 407 11.1 Automatiskt genererade exceptionella händelser 408 11.2 Att själv generera exceptionella händelser 411 11.3 Specifikation av exceptionella händelser 413 11.4 Att fånga exceptionella händelser 415 11.5 Övningsuppgifter 420 12 Händelser, lyssnare och handlingar 421 12.1 Programstruktur 422 12.2 Händelseklasser 423 12.3 Lyssnarklasser och lyssnargränssnitt 423 12.4 Adapterklasser 427 12.5 Mus 427 12.6 Tangentbord 435 12.7 Klassen javax.swing.timer 439 12.8 Ett avancerat exempel Tennisspel 445 12.9 Handlingar gränssnittet Action 452 12.10 PropertyChange och Model-View-Controller 459 12.11 Övningsuppgifter 472 13 Aktiva objekt 475 13.1 Trådar 476 13.2 Synkronisering av trådar 482 13.3 Standardklasser för köer 489 13.4 Trådar och Swing 494 13.5 Klassen SwingWorker 496 13.6 Trådar i awt-komponenter 506 13.7 Övningsuppgifter 510 14 Menyer, fönster och dialogrutor 511 14.1 Menyer 511 14.1.1 Menyrader, menyer och menyalternativ 511 v

14.1.2 Submenyer 517 14.1.3 Popup-menyer 519 14.1.4 Kortkommandon till menyer 521 14.1.5 Menyer och handlingar 522 14.2 Verktygsfält klassen JToolBar 524 14.3 Gemensamma egenskaper för toppnivåkomponenter 528 14.4 Klassen JFrame 534 14.5 Interna fönster 538 14.6 Dialogrutor 544 14.6.1 Klassmetoder i klassen JOptionPane 545 14.6.2 Objekt av klassen JOptionPane 550 14.6.3 Direkt användning av klassen JDialog 554 14.7 Klassen JFileChooser 557 14.8 Exempel en texteditor 564 14.9 Övningsuppgifter 569 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 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 vi

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 612 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 Iteratorer 654 17.5 Listor 656 17.5.1 Gemensamma egenskaper Gränssnittet List 656 17.5.2 Stackar 657 17.5.3 Implementeringar av listor 658 17.6 Mängder 659 17.6.1 Gemensamma egenskaper Gränssnittet Set 659 17.6.2 Sorterade mängder och klassen TreeSet 660 17.6.3 Klasserna HashSet och LinkedHashSet 662 17.6.4 Klassen EnumSet 663 17.7 Avbildningstabeller 664 17.7.1 Gemensamma egenskaper Gränssnittet Map 664 17.7.2 Sorterade avbildningstabeller och klassen TreeMap 666 17.7.3 Klasserna HashMap, LinkedHashMap och HashTable 670 17.7.4 Klassen ConcurrentHashMap 674 17.7.5 Klassen EnumMap 674 vii

17.7.6 Klassen Properties 675 17.8 Övningsuppgifter 679 18 Kommunikation 681 18.1 Klassen URL 681 18.2 Portar och sockets 686 18.3 Datagram 688 18.4 Multicast 697 18.5 Uppkopplade förbindelser Client / Server 702 18.6 E-post 709 18.7 Applets och kommunikation 711 18.8 Övningsuppgifter 712 19 Lite av varje 713 19.1 Kommentarer och dokumentation 713 19.2 Fler operatorer 716 19.2.1 Bit-operatorer och binär lagring av heltal 716 19.2.2 Villkorsoperatorn 720 19.3 Fler satser 721 19.3.1 switch-satsen 721 19.3.2 do-satsen 723 19.3.3 Satser med etikett 724 19.3.4 break-satsen 724 19.3.5 continue-satsen 725 19.4 Rekursion 726 19.5 Övningsuppgifter 730 Appendix A Reserverade ord och operatorer 733 Appendix B LATIN_1-koder 735 Sakregister 737 viii