Title: Hoofdstuk%202:%20Inleiding%20tot%20Java%20Applicaties
1Hoofdstuk 2 Inleiding tot Java Applicaties
2 2.1 Inleiding
- In dit hoofdstuk
- Voorbeelden om enkele kenmerken van Java te
illustreren - Twee programma vormen
- applicaties en
- applets
32.2 Eerste Java-programma Een zin afdrukken
Gewenste programma uitvoer
- Welcome to Java Programming!
4(No Transcript)
5- Commentaar (lijn 1 en 2)
- Beschrijft stukken code
- Verhoogt de leesbaarheid van programma
- Wordt door de Java-compiler genegeerd
- 3 soorten
- Eén-lijn commentaar // ...
- Commentaar die uit meerdere lijnen bestaat /
... / - Document commentaar / ... /
6- Blanco regel (lijn 3)
- Zorgt voor de leesbaarheid van programma
- Witregels, spaties en tabs wit-ruimte
karakters, door de compiler genegeerd
7(No Transcript)
8- Klasse definitie (lijn 4)
- Ieder Java programma gt minstens één klasse door
de programmeur gedefinieerd ( user-defined
class) - Keyword sleutelwoord, heeft een speciale
betekenis in Java - class gevolgd door naam van klasse (
identifier) - Afspraak Naam klasse begint altijd met een
hoofdletter. Alsook elk woord in de klasse-naam.
Vb. VoorbeeldKlasseNaam
9- Identifier
- Rij karakters bestaande uit letters, cijfers,
underscores (_) en dollartekens () - Begint nooit met een cijfer, heeft geen spaties
- Voorbeelden Welcome1, value, value, button7
- 7button is ongeldig
- Java is case sensitive (hoofdletter-gevoelig)
- a1 ? A1
- public sleutelwoord
- Wordt later besproken
10- Linkerhaakje (lijn 5)
- Blokken vormen
- Rechterhaakje sluit het blok (lijn 13)
11(No Transcript)
12- Onderdeel van elke Java applicatie (7)
- Applicaties starten met de uitvoering van main
- main is een methode
- Java applicaties bevatten één of meerdere
methodes - Juist één methode moet main genoemd worden
- Methodes verrichten taken en kunnen informatie
teruggeven - void betekent geen teruggeef-informatie
13- In body instructies
- System.out
- Standard output object
- Drukt af in command window(MS-DOS prompt)
- Methode System.out.println
- Toont een zin
- Argument tussen haakjes
- instructiesstatements
- Statements worden afgesloten met
- Linkerhaakje begin body main
- Afgesloten door rechterhaakje (lijn 11)
142.2.1 Compilatie en uitvoering van Java Applicatie
- Bewaren
- Bestandsnaam klassenaam.java
- Vb. Welcome1.java
- javac Welcome1.java (compiler)
- Welcome1.class (uw applicatie, bestaande uit
bytecodes) - java Welcome1 (interpreter)
- uitvoering van applicatie
152.3 Eerste Java programma wijzigen.
- Eén zin afdrukken met meerdere statements
- Meerdere zinnen afdrukken met één enkel statement
162.3.1 Eén zin met meerdere statements
Welcome to Java Programming!
172.3.2 Meerdere zinnen met één enkel statement
Welcome to Java Programming!
- Newline karakter (\n)
- Speciale tekens bij methodes System.out.print
en system.out.println - new line harde return
18- Escape characters
- Backslash ( \ )
- Speciale karakters die output vormgeven
- Voorbeelden
- \n
- \t
- \r
- \\
- \
192.4 Tekst in een Dialog Box tonen
- Weergave
- Meeste Java applicaties gebruiken vensters of een
dialog box - We gebruikten het command venster
- De klasse JOptionPane laat ons het gebruik van
dialog boxes toe
20- Packages
- Verzameling van voorgedefinieerde klassen
- Groepen gerelateerde klassen packages
- Verzameling van alle packages Java class
library of Java applications programming
interface (Java API) - JOptionPane zit in javax.swing package
- Deze package bevat klassen om Grafische User
Interfaces (GUIs) te gebruiken
211 // Fig. 2.6 Welcome4.java 2 // Meerdere
lijnen in een dialog boxafdrukken 3 4 //
Java extension packages 5 import
javax.swing.JOptionPane // importeert klasse
JOptionPane 6 7 public class Welcome4 8
9 // main methode start de uitvoering van
Java applicatie 10 public static void main(
String args ) 11 12
JOptionPane.showMessageDialog( 13
null, "Welcome\nto\nJava\nProgramming!" ) 14
15 System.exit( 0 ) // beëindigt de
applicatie 16 17 // einde methode
main 18 19 // einde klasse Welcome4
22- Twee groepen packages in Java API
- Core (kern) packages
- Beginnen met java
- Zitten in Java 2 Software Development Kit
- Extension (uitbreidings) packages
- Beginnen met javax
- Nieuwe Java packages
- Zitten in Java 2 Software Development Kit
23- import statements
- Laten de compiler toe de gebruikte klassen in een
programma te identificeren en te localiseren - In ons vb. import statement vertelt de compiler
om de klasse JOptionPane uit de javax.swing
package te laden
241 // Fig. 2.6 Welcome4.java 2 // Meerdere
lijnen in een dialog boxafdrukken 3 4 //
Java extension packages 5 import
javax.swing.JOptionPane // importeert klasse
JOptionPane 6 7 public class Welcome4 8
9 // main methode start de uitvoering van
Java applicatie 10 public static void main(
String args ) 11 12
JOptionPane.showMessageDialog( 13
null, "Welcome\nto\nJava\nProgramming!" ) 14
15 System.exit( 0 ) // beëindigt de
applicatie 16 17 // einde methode
main 18 19 // einde klasse Welcome4
25- Aanroep methode showMessageDialog
- van de klasse JOptionPane
- Twee argumenten
- Meerdere argumenten scheiden met kommas
- Nu is eerste argument altijd null
- Tweede argument is string die wordt getoond
- showMessageDialog is een static methode van de
klasse JOptionPane - static methodes aanroepen via klasse-naam .
methode-naam
26- Aanroep static method exit van de klasse System
- Stopt de applicatie
- Gebruiken in elke applicatie die een GUI toont
- 0-argument applicatie is correct geëindigd
- Niet-nul meestal heeft zich een fout voorgedaan
- Klasse System deel van package java.lang
- Geen import statement nodig
- java.lang automatisch geïmporteerd in elk Java
programma
272.5 Andere Java Applicatie Optellen van gehele
getallen
- Programma
- Gebruikt input dialogs om twee waarden aan de
gebruiker te vragen - Gebruikt message dialog om de som van de twee
waarden te tonen
28- 1 // Fig. 2.9 Addition.java
- 2 // Een bijkomend programma.
- 3
- 4 // Java extension packages
- 5 import javax.swing.JOptionPane //
importeert klasse JOptionPane - 6
- 7 public class Addition
- 8
- 9 // main methode start de uitvoering van
Java applicatie - 10 public static void main( String args )
- 11
- 12 String firstNumber // eerste string
ingegeven door gebruiker - 13 String secondNumber // tweede string
ingegeven door gebruiker - 14 int number1 // eerste getal
om op te tellen - 15 int number2 // tweede getal
om op te tellen - 16 int sum // som van
number1 en number2 - 17
29- Variabelen
- Geheugenlocatie waarin een waarde wordt
gestockeerd - Heeft een naam en is van een bepaald datatype
- firstNumber en secondNumber zijn van data type
String (package java.lang) - bevat strings
- Naam van variabele willekeurige identifier
- Declaraties eindigen met
- Mogelijk meerdere variabelen van hetzelfde type
tegelijkertijd te declareren - Voeg commentaar toe om het doel van variabelen te
beschrijven
30- Variabelen van het type int
- int bevat gehele getallen 0, -4, 97
- Data types float en double kunnen decimalen
stockeren - Data type char bevat één enkel karakter x, ,
\n, 7 - Primitieve data types - later in hoofdstuk 4
31(No Transcript)
32- Inleesresultaat van showInputDialog toekennen aan
firstNumber - Toekenningsstatement
- binaire operator - heeft twee operanden
- Rechterlid wordt geëvalueerd en toegekend aan
variabele in het linkerlid - Lees als firstNumber krijgt de waarde van
JOptionPane.showInputDialog( "Enter first
integer" )
- Methode JOptionPane.showInputDialog
- toont de dialoogbox en leest een string in
- Bij ingave van een verkeerd type van data
(niet-integer) of bij klikken op Cancel, zal er
zich een fout voordoen
33(No Transcript)
34- Methode Integer.parseInt
- Converteert String argument in een integer (type
int) - Klasse Integer in java.lang
- int teruggegeven door Integer.parseInt, wordt
toegekend aan de variabele number1 (line 27) - Herinner u dat number1 als int werd gedeclareerd
- Lijn 28 idem
35- Toekenningsstatement
- Berekent de som van number1 en number2
(rechterzijde) - Gebruikt de toekenningsoperator om het
resultaat in de variabele sum te stoppen - Lees als sum krijgt de waarde van number1
number2 - number1 en number2 zijn operanden
36- Visuele presentatie
- sum 0 number1 1 number2 2
- sum number1 number2 na uitvoering van
statement
37(No Transcript)
38- showMessageDialog om resultaten te tonen
- "The sum is " sum
- Samenvoeging van een String en een ander data
type - Dit resulteert in een nieuwe string
- Als sum 117 bevat, dan resulteert "The sum is "
sumin een nieuwe string "The sum is 117 - Meer over strings in hoofdstuk 10
39- Andere versie van showMessageDialog
- Eist vier argumenten (in plaats van twee)
- Eerste argument null
- Tweede weer te geven string
- Derde string in titelbar
- Vierde type van bericht met icoon
- Lijn 36 geen icoon JoptionPane.PLAIN_MESSAGE
40(No Transcript)
412.7 Rekenkundige bewerkingen
- Gebruik
- voor vermenigvuldiging
- / voor deling
- , -
- Geen operator voor exponent (zie hoofdstuk 5)
- Integer deling kapt quotiënt af
- 7 / 5 gt 1
- Rest-operator
- 7 5 gt 2
42- Prioriteitsregels
- Haakjes ( )
- , / ,
- , -
- Bij gelijke prioriteit gt regels van de
associativiteit (van L naar R)
432.8 Beslissingen Relationele operatoren
- if controlestructuur
- if (voorwaarde) body_voorwaarde_geldiggt als
de voorwaarde geldt ( true), dan wordt de body
van het if statement uitgevoerd - Voorwaarden kunnen geformuleerd worden met
relationele operatoren en/of gelijkheidsoperatoren
44- Operator In Java
- exact gelijk
- ? ! verschillend
- gt gt groter dan
- lt lt kleiner dan
- ? gt groter dan of gelijk aan
- ? lt kleiner dan of gelijk aan
451 // Fig. 2.20 Comparison.java 2 //
Vergelijk integers gebruikmakend van if
structuur, relationele operatoren 3 // en
gelijkheidsoperatoren. 4 5 // Java
extension packages 6 import javax.swing.JOption
Pane 7 8 public class Comparison 9
10 // main method start de uitvoering van
Java applicatie 11 public static void main(
String args ) 12 13 String
firstNumber // eerste string ingegeven door
gebruiker 14 String secondNumber //
tweede string ingegeven door gebruiker 15
String result // een string die de
uitvoer bevat 16 int number1 //
eerste getal om te vergelijken 17 int
number2 // tweede getal om te
vergelijken 18
46- 19 // lees eerste getal van gebruiker in
als een string - 20 firstNumber
- 21 JOptionPane.showInputDialog( "Enter
first integer" ) - 22
- 23 // lees tweede getal van gebruiker in
als een string - 24 secondNumber
- 25 JOptionPane.showInputDialog( "Enter
second integer" ) - 26
- 27 // converteer getallen van type String
naar het type int - 28 number1 Integer.parseInt(
firstNumber ) - 29 number2 Integer.parseInt(
secondNumber ) - 30
- 31 // initialiseer het resultaat als een
lege String - 32 result ""
- 33
-
47- 34 if ( number1 number2 )
- 35 result number1 " "
number2 - 36
- 37 if ( number1 ! number2 )
- 38 result number1 " ! "
number2 - 39
- 40 if ( number1 lt number2 )
- 41 result result "\n" number1
" lt " number2 - 42
- 43 if ( number1 gt number2 )
- 44 result result "\n" number1
" gt " number2 - 45
- 46 if ( number1 lt number2 )
- 47 result result "\n" number1
" lt " number2 - 48
- 49 if ( number1 gt number2 )
- 50 result result "\n" number1
" gt " number2 - 51
34 if ( number1 number2 ) 35
result number1 " " number2 36 37
if ( number1 ! number2 ) 38
result number1 " ! " number2 39 40
if ( number1 lt number2 ) 41 result
result "\n" number1 " lt " number2 42
43 if ( number1 gt number2 ) 44
result result "\n" number1 " gt "
number2 45 46 if ( number1 lt number2
) 47 result result "\n" number1
" lt " number2 48 49 if ( number1
gt number2 ) 50 result result "\n"
number1 " gt " number2 51
48- if structuur om te testen op gelijkheid ( )
- Als de conditie waar (true) is
- Rechterlid wordt eerst geëvalueerd, nieuwe string
wordt toegekend aan result - result concatenatie variabelen operator
- result result andere strings
- Als de conditie onwaar (false) is, dan wordt
statement overgeslagen
49- 52 // Toon resultaten
- 53 JOptionPane.showMessageDialog(
- 54 null, result, "Comparison Results",
- 55 JOptionPane.INFORMATION_MESSAGE )
- 56
- 57 System.exit( 0 ) // beëindigt de
applicatie - 58
- 59 // einde methode main
- 60
- 61 // einde klasse Comparison
50- Prioriteitsregels
- ( )
- , / ,
- , -
- lt, lt, gt, gt
- , !
-
- Bij gelijke prioriteit gt alle operatoren worden
verbonden van links naar rechts, behalve
(assignment) - x y z gt x (y z)
51Oefeningen
52Geldige identifiers?
- Bill
- main
- Sues
- start
- begin
- xyz123
- 123xyz
- int
- y2
- prog2
- DitIsGoed
- dit_is_ook_goed
- zonne-kant
53Welke uitvoer krijgen we?
- System.out.println( getal1getal2" )
- System.out.println( getal1 getal2 )met in
beide gevallen getal121 en getal243
54Hoe krijg je volgende zinnen op het scherm?
- Open de map C\Mijn Documenten
- Volg de pijl Omleiding
- Het boek voor Javais dat van Deitel.Engelstal
ig
55Bepaal resultaat
- 234
- (23)4
- 63/24
- 63/(24)
- 6(8(23))
- 17/895-32
- 17/(89)(5-3)2
56- Schrijf een programma dat 2 getallen met elkaar
vermenigvuldigt. Laat de gebruiker hierbij de
waarden ingeven. - Vraag 2 getallen in en geef het grootste terug op
het scherm. - Vraag het maandsalaris in en bereken het
jaarsalaris (zonder vakantiegeld) en het
vakantiegeld (8 vh jaarsalaris)
57Oplossingen
58Welke uitvoer krijgen we?
- System.out.println( getal1getal2" )
- System.out.println( getal1 getal2 )met in
beide gevallen getal121 en getal243
59Hoe krijg je volgende zinnen op het scherm?
- Open de map C\Mijn Documenten
- System.out.println( "Open de map C\\Mijn
Documenten" ) - Volg de pijl Omleiding
- System.out.println( "Volg de pijl
\"Omleiding\"") - Het boek voor Javais dat van Deitel.Engelstal
ig - System.out.println( "Het boek voor\tJava\nis dat
van\tDeitel.\nEngelstalig")
60Bepaal resultaat
- 234
- 2 12 14
- (23)4
- 5 4 20
- 63/24
- 18/24 94 36
- 63/(24)
- 63/8 18/8 2
- 6(8(23))
- 6 (86) 62 12
61Bepaal resultaat
- 17/895-32
- 295-32 24-32 24-6 6-6 0
- 17/(89)(5-3)2
- 17/17(5-3)2 17/1722 122 12 2
- 12/(284)
- 12/(164) 12/(0) ? fout deling door nul
- 2017/84
- 340/84 424 2
62- Schrijf een programma dat 2 getallen met elkaar
vermenigvuldigt. Laat de gebruiker hierbij de
waarden ingeven.
63 // Oefening 1. // vermenigvuldiging van
twee getallen // Java extension packages
import javax.swing.JOptionPane // importeert
klasse JOptionPane public class Oefening
// main methode start de uitvoering van
Java applicatie public static void main(
String args ) String
firstNumber // eerste string ingegeven door
gebruiker String secondNumber //
tweede string ingegeven door gebruiker
int number1 // eerste getal om te
vermenigvuldigen int number2
// tweede getal om te vermenigvuldigen
int verm // vermenigvuldiging van
number1 en number2
64 // lees eerste getal van gebruiker in
als een String firstNumber
JOptionPane.showInputDialog( "Geef eerste getal"
) // lees tweede getal van gebruiker
in als een String secondNumber
JOptionPane.showInputDialog( "Geef tweede
getal" ) // converteer getallen
van type String naar het type int
number1 Integer.parseInt( firstNumber )
number2 Integer.parseInt( secondNumber )
// Vermenigvuldig de getallen verm
number1 number2
65 // toon de resultaten
JOptionPane.showMessageDialog( null,
"De vermenigvuldiging is " verm, "Resultaat",
JOptionPane.PLAIN_MESSAGE )
System.exit( 0 ) // beëindigt de applicatie
// einde methode main // eind
klasse Oefening
66- Vraag 2 getallen in en geef het grootste terug op
het scherm.
67 // Oefening 2. // het grootste getal
bepalen // Java extension packages
import javax.swing.JOptionPane // importeert
klasse JOptionPane public class Oefening
// main methode start de uitvoering van
Java applicatie public static void main(
String args ) String
firstNumber // eerste string ingegeven
door gebruiker String secondNumber //
tweede string ingegeven door gebruiker
String result // een string die de
uitvoer bevat int number1 //
eerste getal om te vergelijken int
number2 // tweede getal om te vergelijken
68 // lees eerste getal van gebruiker in als een
String firstNumber
JOptionPane.showInputDialog( "Geef eerste getal"
) // lees tweede getal van gebruiker
in als een String secondNumber
JOptionPane.showInputDialog( "Geef tweede
getal" ) // converteer getallen van
type String naar het type int number1
Integer.parseInt( firstNumber ) number2
Integer.parseInt( secondNumber ) //
initialiseer het resultaat als een lege
String result "grootste getal "
69 if ( number1 gt number2 )
result result number1 if ( number1
lt number2 ) result result
number2 // Toon resultaat
JOptionPane.showMessageDialog( null, result,
"Resultaat", JOptionPane.INFORMATION_MESSAGE
) System.exit( 0 ) // beëindigt de
applicatie // einde methode main
// eind klasse Addition
70- Vraag het maandsalaris in en bereken het
jaarsalaris (zonder vakantiegeld) en het
vakantiegeld (8 vh jaarsalaris)
71 // Oefening 3. // jaarsalaris en
vakantiegeld // Java extension packages
import javax.swing.JOptionPane // importeert
klasse JOptionPane public class Oefening
// main methode start de uitvoering van
Java applicatie public static void main(
String args ) String
firstNumber // eerste string ingegeven door
gebruiker String result // een
string die de uitvoer bevat int
maandsalaris // maandsalaris int
jaarsalaris // jaarsalaris int
vakantiegeld // vakantiegeld
72 // lees eerste getal van gebruiker in
als een String firstNumber
JOptionPane.showInputDialog( "Geef maandsalaris"
) // converteer getal van type String
naar het type int maandsalaris
Integer.parseInt( firstNumber )
jaarsalaris maandsalaris 12 result
"jaarsalaris " jaarsalaris
vakantiegeld jaarsalaris 8 / 100
result result "\nvakantiegeld "
vakantiegeld
73 // Toon resultaten JOptionPane.showMessa
geDialog(null, result, "Resultaat",
JOptionPane.INFORMATION_MESSAGE )
System.exit( 0 ) // beëindigt de applicatie
// einde methode main // eind
klasse Addition