Hoofdstuk 2: Inleiding tot Java Applicaties

Post on 09-Jan-2016

39 views 2 download

description

Hoofdstuk 2: Inleiding tot Java Applicaties. 2.1 Inleiding. In dit hoofdstuk Voorbeelden om enkele kenmerken van Java te illustreren Twee programma vormen : applicaties en applets. 2.2Eerste Java-programma: Een zin afdrukken. Welcome to Java Programming!. - PowerPoint PPT Presentation

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)