Hoofdstuk 2: Inleiding tot Java Applicaties
description
Transcript of Hoofdstuk 2: Inleiding tot Java Applicaties
JAVA 1
Hoofdstuk 2: Inleiding tot Java
Applicaties
JAVA 2
2.1 Inleiding
In dit hoofdstuk
Voorbeelden om enkele kenmerken van Java te illustreren
Twee programma vormen : applicaties en applets
JAVA 3
2.2Eerste Java-programma:
Een zin afdrukken
Welcome to Java Programming!
Gewenste programma uitvoer :
JAVA 4
1 // Fig. 2.1: Welcome1.java2 // Een eerste programma in Java.3 4 public class Welcome15 {6 // main methode begint de uitvoering van Java applicatie7 public static void main( String args[] )8 {9 System.out.println( "Welcome to Java Programming!" );10 11 } // einde methode main12 13 } // einde klasse Welcome1
JAVA 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 : /** ... */
1 // Fig. 2.1: Welcome1.java2 // Een eerste programma in Java.
JAVA 6
Blanco regel (lijn 3)
Zorgt voor de leesbaarheid van programma
Witregels, spaties en tabs = “wit-ruimte” karakters, door de compiler genegeerd
3
JAVA 7
1 // Fig. 2.1: Welcome1.java2 // Een eerste programma in Java.3 4 public class Welcome15 {6 // main methode begint de uitvoering van Java applicatie7 public static void main( String args[] )8 {9 System.out.println( "Welcome to Java Programming!" );10 11 } // einde methode main12 13 } // einde klasse Welcome1
JAVA 8
Klasse definitie (lijn 4) Ieder Java programma => 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
4 public class Welcome1
JAVA 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
4 public class Welcome1
JAVA 10
Linkerhaakje (lijn 5)
Blokken vormen Rechterhaakje sluit het blok (lijn 13)
4 public class Welcome1 5 {…13 } // einde klasse Welcome1
JAVA 11
1 // Fig. 2.1: Welcome1.java2 // Een eerste programma in Java.3 4 public class Welcome15 {6 // main methode begint de uitvoering van Java applicatie7 public static void main( String args[] )8 {9 System.out.println( "Welcome to Java Programming!" );10 11 } // einde methode main12 13 } // einde klasse Welcome1
JAVA 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
7 public static void main( String args[] )
JAVA 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
instructies=statements Statements worden afgesloten met ;
8 {9 System.out.println( "Welcome to Java Programming!" );10 11 } // einde methode main
Linkerhaakje = begin body mainAfgesloten door rechterhaakje } (lijn 11)
JAVA 14
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
JAVA 15
2.3Eerste Java programma wijzigen.
Eén zin afdrukken met meerdere statements
Meerdere zinnen afdrukken met één enkel statement
JAVA 16
Eén zin met meerdere statements
9 System.out.print( "Welcome to " );10 System.out.println( "Java Programming!" );
Welcome to Java Programming!
JAVA 17
Meerdere zinnen met één enkel statement
Newline karakter (\n) “Speciale tekens” bij methodes System.out.print en system.out.println
new line = harde return
9 System.out.println( "Welcome\nto\nJava\nProgramming!" );
WelcometoJavaProgramming!
JAVA 18
Escape characters
Backslash ( \ ) Speciale karakters die output vormgeven Voorbeelden :
\n \t \r \\ \”
JAVA 19
2.4Tekst 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
JAVA 20
Packages Verzameling van voorgedefinieerde
klassen Groepen gerelateerde klassen = packages
Verzameling van alle packages = Java class library ofJava applications programming
interface (Java API) JOptionPane zit in javax.swing package
Deze package bevat klassen om Grafische User Interfaces (GUIs) te gebruiken
JAVA 21
1 // Fig. 2.6: Welcome4.java2 // Meerdere lijnen in een dialog box afdrukken3 4 // Java extension packages5 import javax.swing.JOptionPane; // importeert klasse JOptionPane6 7 public class Welcome48 {9 // main methode start de uitvoering van Java applicatie10 public static void main( String args[] )11 {12 JOptionPane.showMessageDialog(13 null, "Welcome\nto\nJava\nProgramming!" );14 15 System.exit( 0 ); // beëindigt de applicatie16 17 } // einde methode main18 19 } // einde klasse Welcome4
JAVA 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
4 // Java extension packages
5 import javax.swing.JOptionPane;
JAVA 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
4 // Java extension packages
5 import javax.swing.JOptionPane;
JAVA 24
1 // Fig. 2.6: Welcome4.java2 // Meerdere lijnen in een dialog boxafdrukken3 4 // Java extension packages5 import javax.swing.JOptionPane; // importeert klasse JOptionPane6 7 public class Welcome48 {9 // main methode start de uitvoering van Java applicatie10 public static void main( String args[] )11 {12 JOptionPane.showMessageDialog(13 null, "Welcome\nto\nJava\nProgramming!" );14 15 System.exit( 0 ); // beëindigt de applicatie16 17 } // einde methode main18 19 } // einde klasse Welcome4
JAVA 25
Aanroep methode showMessageDialog van de klasse JOptionPane
Twee argumenten Meerdere argumenten scheiden met
komma’s 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
12 JOptionPane.showMessageDialog(13 null, "Welcome\nto\nJava\nProgramming!" );
JAVA 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
15 System.exit( 0 ); // beëindigt de applicatie
JAVA 27
2.5Andere 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
JAVA 28
1 // Fig. 2.9: Addition.java2 // Een bijkomend programma.3 4 // Java extension packages5 import javax.swing.JOptionPane; // importeert klasse JOptionPane6 7 public class Addition8 {9 // main methode start de uitvoering van Java applicatie10 public static void main( String args[] )11 {12 String firstNumber; // eerste string ingegeven door
gebruiker13 String secondNumber; // tweede string ingegeven door
gebruiker14 int number1; // eerste getal om op te tellen15 int number2; // tweede getal om op te tellen16 int sum; // som van number1 en number217
JAVA 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
12 String firstNumber; // eerste string ingegeven door gebruiker13 String secondNumber; // tweede string ingegeven door gebruiker14 int number1; // eerste getal om op te tellen
JAVA 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
14 int number1; // eerste getal om op te tellen15 int number2; // tweede getal om op te tellen16 int sum; // som van number1 en number2
JAVA 31
18 // lees eerste getal van gebruiker in als een String19 firstNumber =20 JOptionPane.showInputDialog( "Enter first integer" );21 22 // lees tweede getal van gebruiker in als een String23 secondNumber =24 JOptionPane.showInputDialog( "Enter second integer" );25 // som van number1 en number2
JAVA 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
JAVA 33
26 // converteer getallen van type String naar het type int27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber );29 30 // Sommeer de getallen31 sum = number1 + number2;32
JAVA 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
27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber );
JAVA 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
31 sum = number1 + number2;
JAVA 36
Visuele presentatie sum = 0; number1 = 1; number2 = 2;
sum = number1 + number2; na uitvoering van statement
sum 0
sum 3
31 sum = number1 + number2;
JAVA 37
33 // toon de resultaten34 JOptionPane.showMessageDialog(35 null, "The sum is " + sum, "Results",36 JOptionPane.PLAIN_MESSAGE );37 38 System.exit( 0 ); // beëindigt de applicatie39 40 } // einde methode main41 42 } // eind klasse Addition
JAVA 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 11
34 JOptionPane.showMessageDialog(35 null, "The sum is " + sum, "Results",36 JOptionPane.PLAIN_MESSAGE );
JAVA 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
34 JOptionPane.showMessageDialog(35 null, "The sum is " + sum, "Results",36 JOptionPane.PLAIN_MESSAGE );
JAVA 40
Message dialog type Icon Description
JOptionPane.ERROR_MESSAGE
Displays a dialog that indicates an error to the user.
JOptionPane.INFORMATION_MESSAGE
Displays a dialog with an informational message to the user. The user can simply dismiss the dialog.
JOptionPane.WARNING_MESSAGE
Displays a dialog that warns the user of a potential problem.
JOptionPane.QUESTION_MESSAGE
Displays a dialog that poses a question to the user. This dialog normally requires a response, such as clicking on a Yes or a No button.
JOptionPane.PLAIN_MESSAGE no icon Displays a dialog that simply contains a
message, with no icon. Fig. 2.12 JOptionPane constants for message dialogs.
JAVA 41
2.6 Geheugenopslag zie dia 36
JAVA 42
2.7 Rekenkundige bewerkingen Gebruik
* voor vermenigvuldiging / voor deling +, - Geen operator voor exponent (zie
hoofdstuk 5)
Integer deling kapt quotiënt af7 / 5 => 1
Rest-operator %7 % 5 => 2
JAVA 43
Prioriteitsregels
Haakjes ( )
* , / , %
+, -
Bij gelijke prioriteit => regels van de associativiteit (van L naar R)
JAVA 44
2.8Beslissingen: Gelijkheids- en relationele operatoren
if controlestructuur if (voorwaarde)
body_voorwaarde_geldig
=> als de voorwaarde geldt (= true), dan wordt de body van het if statement uitgevoerd
Voorwaarden kunnen geformuleerd worden met relationele operatoren en/of gelijkheidsoperatoren
JAVA 45
Operator In Java= = = exact gelijk != verschillend> > groter dan< < kleiner dan >= groter dan of gelijk aan <= kleiner dan of gelijk aan
JAVA 46
1 // Fig. 2.20: Comparison.java2 // Vergelijk integers gebruikmakend van if structuur, relationele
operatoren 3 // en gelijkheidsoperatoren.4 5 // Java extension packages6 import javax.swing.JOptionPane;7 8 public class Comparison {9 10 // main method start de uitvoering van Java applicatie11 public static void main( String args[] )12 {13 String firstNumber; // eerste string ingegeven door
gebruiker14 String secondNumber; // tweede string ingegeven door
gebruiker15 String result; // een string die de uitvoer bevat16 int number1; // eerste getal om te vergelijken17 int number2; // tweede getal om te vergelijken18
JAVA 47
19 // lees eerste getal van gebruiker in als een string20 firstNumber =21 JOptionPane.showInputDialog( "Enter first integer:" );22 23 // lees tweede getal van gebruiker in als een string24 secondNumber =25 JOptionPane.showInputDialog( "Enter second integer:" );26 27 // converteer getallen van type String naar het type int28 number1 = Integer.parseInt( firstNumber );29 number2 = Integer.parseInt( secondNumber );30 31 // initialiseer het resultaat als een lege String32 result = "";33
JAVA 48
34 if ( number1 == number2 )35 result = number1 + " == " + number2;36 37 if ( number1 != number2 )38 result = number1 + " != " + number2;39 40 if ( number1 < number2 )41 result = result + "\n" + number1 + " < " + number2;42 43 if ( number1 > number2 )44 result = result + "\n" + number1 + " > " + number2;45 46 if ( number1 <= number2 )47 result = result + "\n" + number1 + " <= " + number2;48 49 if ( number1 >= number2 )50 result = result + "\n" + number1 + " >= " + number2;51
34 if ( number1 == number2 )35 result = number1 + " == " + number2;36 37 if ( number1 != number2 )38 result = number1 + " != " + number2;39 40 if ( number1 < number2 )41 result = result + "\n" + number1 + " < " +
number2;42 43 if ( number1 > number2 )44 result = result + "\n" + number1 + " > " +
number2;45 46 if ( number1 <= number2 )47 result = result + "\n" + number1 + " <= " +
number2;48 49 if ( number1 >= number2 )50 result = result + "\n" + number1 + " >= " +
number2;51
JAVA 49
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
34 if ( number1 == number2 )35 result = number1 + " == " + number2;37 if ( number1 != number2 )38 result = number1 + " != " + number2;40 if ( number1 < number2 )41 result = result + "\n" + number1 + " < " + number2;
JAVA 50
52 // Toon resultaten53 JOptionPane.showMessageDialog(54 null, result, "Comparison Results",55 JOptionPane.INFORMATION_MESSAGE );56 57 System.exit( 0 ); // beëindigt de applicatie58 59 } // einde methode main60 61 } // einde klasse Comparison
JAVA 51
Prioriteitsregels ( ) * , / , % +, - <, <=, >, >= ==, != =
Bij gelijke prioriteit => alle operatoren worden verbonden van links naar rechts, behalve = (assignment)
x = y = z => x = (y = z)
JAVA 52
Oefeningen
Hoofdstuk 2
JAVA 53
Geldige identifiers? Bill main Sue’s start begin xyz123 123xyz
int y=2 prog#2 DitIsGoed dit_is_ook_goed zonne-kant $
JAVA 54
Welke uitvoer krijgen we? System.out.println( ”getal1+getal2" ); System.out.println( getal1 + getal2 );
met in beide gevallen getal1=21 en getal2=43
JAVA 55
Hoe krijg je volgende zinnen op het scherm? Open de map C:\Mijn Documenten
Volg de pijl “Omleiding”
Het boek voor Javais dat van Deitel.Engelstalig
JAVA 56
Bepaal resultaat : 2+3*4= (2+3)*4= 6*3/2*4= 6*3/(2*4)= 6*(8%(2*3))= 17/8+9%5-3*2= 17/(8+9)%(5-
3)*2=
12/(2*8%4)= 20*17/8%4=
JAVA 57
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)