Hoofdstuk 2: Inleiding tot Java Applicaties

57
JAVA 1 Hoofdstuk 2: Inleiding tot Java Applicaties

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

Page 1: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 1

Hoofdstuk 2: Inleiding tot Java

Applicaties

Page 2: 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

Page 3: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 3

2.2Eerste Java-programma:

Een zin afdrukken

Welcome to Java Programming!

Gewenste programma uitvoer :

Page 4: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 5: Hoofdstuk 2:  Inleiding tot Java Applicaties

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.

Page 6: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 6

Blanco regel (lijn 3)

Zorgt voor de leesbaarheid van programma

Witregels, spaties en tabs = “wit-ruimte” karakters, door de compiler genegeerd

3

Page 7: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 8: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 9: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 10: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 10

Linkerhaakje (lijn 5)

Blokken vormen Rechterhaakje sluit het blok (lijn 13)

4 public class Welcome1 5 {…13 } // einde klasse Welcome1

Page 11: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 12: Hoofdstuk 2:  Inleiding tot Java Applicaties

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[] )

Page 13: Hoofdstuk 2:  Inleiding tot Java Applicaties

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)

Page 14: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 15: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 15

2.3Eerste Java programma wijzigen.

Eén zin afdrukken met meerdere statements

Meerdere zinnen afdrukken met één enkel statement

Page 16: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 16

Eén zin met meerdere statements

9 System.out.print( "Welcome to " );10 System.out.println( "Java Programming!" );

Welcome to Java Programming!

Page 17: Hoofdstuk 2:  Inleiding tot Java Applicaties

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!

Page 18: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 18

Escape characters

Backslash ( \ ) Speciale karakters die output vormgeven Voorbeelden :

\n \t \r \\ \”

Page 19: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 20: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 21: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 22: Hoofdstuk 2:  Inleiding tot Java Applicaties

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;

Page 23: Hoofdstuk 2:  Inleiding tot Java Applicaties

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;

Page 24: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 25: Hoofdstuk 2:  Inleiding tot Java Applicaties

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!" );

Page 26: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 27: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 28: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 29: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 30: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 31: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 32: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 33: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 34: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 35: Hoofdstuk 2:  Inleiding tot Java Applicaties

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;

Page 36: Hoofdstuk 2:  Inleiding tot Java Applicaties

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;

Page 37: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 38: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 39: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 40: Hoofdstuk 2:  Inleiding tot Java Applicaties

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.

Page 41: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 41

2.6 Geheugenopslag zie dia 36

Page 42: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 43: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 43

Prioriteitsregels

Haakjes ( )

* , / , %

+, -

Bij gelijke prioriteit => regels van de associativiteit (van L naar R)

Page 44: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 45: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 45

Operator In Java= = = exact gelijk != verschillend> > groter dan< < kleiner dan >= groter dan of gelijk aan <= kleiner dan of gelijk aan

Page 46: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 47: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 48: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 49: Hoofdstuk 2:  Inleiding tot Java Applicaties

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;

Page 50: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 51: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 51

Prioriteitsregels ( ) * , / , % +, - <, <=, >, >= ==, != =

Bij gelijke prioriteit => alle operatoren worden verbonden van links naar rechts, behalve = (assignment)

x = y = z => x = (y = z)

Page 52: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 52

Oefeningen

Hoofdstuk 2

Page 53: Hoofdstuk 2:  Inleiding tot Java Applicaties

JAVA 53

Geldige identifiers? Bill main Sue’s start begin xyz123 123xyz

int y=2 prog#2 DitIsGoed dit_is_ook_goed zonne-kant $

Page 54: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 55: Hoofdstuk 2:  Inleiding tot Java Applicaties

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

Page 56: Hoofdstuk 2:  Inleiding tot Java Applicaties

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=

Page 57: Hoofdstuk 2:  Inleiding tot Java Applicaties

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)