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 Er bestaan twee soorten Java-programma's: applicaties en applets. · Een applicatie is een JAVA-programma dat buiten een webbrowser (of applet-viewer) uitgevoerd wordt. Je moet ook beschikken over een JVM. Zo'n JVM kun je als apart programma gratis verkrijgen bij Sun Microsystems (www.sun.com). · Applicaties hebben iets meer mogelijkheden dan standaard applets. Zo kunnen applicaties bestanden op de schijf maken, lezen en verwijderen. Standaard applets kunnen dit niet. JAVA
2.2 Eerste Java-programma: Een zin afdrukken Gewenste programma uitvoer : Welcome to Java Programming! We zullen een applicatie maken dat de tekst « Welcome to JAVA Programming! » weergeeft op het scherm. JAVA
2 // Een eerste programma in Java. 3 4 public class Welcome1 5 { 1 // Fig. 2.1: Welcome1.java 2 // Een eerste programma in Java. 3 4 public class Welcome1 5 { 6 // main methode begint de uitvoering van Java applicatie 7 public static void main( String args[] ) 8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 11 } // einde methode main 12 13 } // einde klasse Welcome1 JAVA
Commentaar (lijn 1 en 2) 3 soorten : 1 // Fig. 2.1: Welcome1.java 2 // Een eerste programma in Java. 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 : /** ... */ We beginnen het programma met commentaar Eerste lijn: naam van het programma Tweede lijn: beschrijving van het programma Andere programmeurs kunnen je programma lezen en begrijpen. Indien je een aanpassing moet aanbrengen (tijd later nadat je het programma hebt geschreven) dan begrijp je vlugger je eigen programma. Commentaar die uit meerdere lijnen bestaat : /* ... */ bv. /* Welcome1.java Een eerste programma in JAVA */ Document commentaar : /** ... */ Dit is speciaal in JAVA (bestaat niet in C++) Een apart document wordt gemaakt. Het « javadoc » programma (van Sun Microsystems met JAVA 2 Software Development Kit) leest het document commentaar van je programma en maakt een nieuw document (zie appendix F). JAVA
Blanco regel (lijn 3) 3 Zorgt voor de leesbaarheid van programma Witregels, spaties en tabs = “wit-ruimte” karakters, door de compiler genegeerd Programmeurs zetten blanco regels in hun programma zodat het programma gemakkelijker kan gelezen worden. JAVA
2 // Een eerste programma in Java. 3 4 public class Welcome1 5 { 1 // Fig. 2.1: Welcome1.java 2 // Een eerste programma in Java. 3 4 public class Welcome1 5 { 6 // main methode begint de uitvoering van Java applicatie 7 public static void main( String args[] ) 8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 11 } // einde methode main 12 13 } // einde klasse Welcome1 JAVA
Klasse definitie (lijn 4) 4 public class Welcome1 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 Ieder JAVA-programma moet minstens 1 klasse bevatten, dat door de programmeur werd gedefinieerd. « class » is een keyword « public » is een keyword. JAVA
Identifier public sleutelwoord 4 public class Welcome1 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 De naam van de klasse is een « identifier ». (Niet enkel de naam is een identiier, er bestaan nog andere) Wat is een identifier? 1. 2. Geen spaties: bv. Input field is ongeldig « public » is een keyword. JAVA
Linkerhaakje (lijn 5) 4 public class Welcome1 5 { … 5 { … 13 } // einde klasse Welcome1 Linkerhaakje (lijn 5) Blokken vormen Rechterhaakje sluit het blok (lijn 13) De klasse EersteApplet bestaat uit een body: Van openingsaccolade tot en met sluitaccolade. {, waar de body van de user-defined-class begint. Lijn13: wordt de body van de user-defined-class gesloten. Goede gewoonte als je een programma schrijft: je schrijft {, en direct } In het boek stellen ze voor: »in de body met 3 spaties op te schuiven » Ale er een { of } ontbreekt, dan geeft de compiler een fout. JAVA
2 // Een eerste programma in Java. 3 4 public class Welcome1 5 { 1 // Fig. 2.1: Welcome1.java 2 // Een eerste programma in Java. 3 4 public class Welcome1 5 { 6 // main methode begint de uitvoering van Java applicatie 7 public static void main( String args[] ) 8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 11 } // einde methode main 12 13 } // einde klasse Welcome1 In de body van de klasse Welcome1 staat alleen de methode main(), maar in mindere simpele applicaties kunnen daar een heleboel verschillende methodes en nog andere dingen staan. Lijn 5: blanco regel Lijn 6: commentaar JAVA
Onderdeel van elke Java applicatie (7) 7 public static void main( String args[] ) 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 1.1 Applicaties starten altijd met de uitvoering van main. 1.1.1 er wordt een blok gevormd methode 1.1.2 In de body van de klasse Welcome1 staat alleen de methode main(), maar in mindere simpele applicaties kunnen daar een heleboel verschillende methodes en nog andere dingen staan. Juist één methode moet main genoemd worden een applicatie moet 1 main hebben. Niet minder-niet meer. De methode main heeft ook een header en een body Header: public static void main( String args[] ) Body: 8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 } 2. In deze kop staat de naam van de methode, in dit geval main, voorafgegaan door de woorden public void. Het woord void betekent dat de methode geen resultaat teruggeeft als de methode is uitgevoerd. JAVA
instructies=statements Linkerhaakje = begin body main 8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 11 } // einde methode main 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 ; Linkerhaakje = begin body main Afgesloten door rechterhaakje } (lijn 11) In ons voorbeeld: In de methode main staat de instructie (=statement) System.out.println( "Welcome to Java Programming!" ); System.out Door system.out kan een applicatie een tekst (string) of andere types weergeven in een command window (Microsoft Windows). In Unix shell Macintosh geeft een window weer (command window bestaat niet) Methode System.out.println Geeft tekst weer op het scherm println nadat de tekst is weergegeven op het scherm, de cursor wordt automatisch op het begin van de volgende lijn geplaatst. p60 JAVA
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 public class Welcome1{ De bestandsnaam moet dezelfde naam hebben als de public klassenaam, gevolgd met extensie .java een JAVA-programma kan maar één public class hebben. Een command window openen en de volgende regel ingeven: javac Welcome1.java vervolgens java Welcome1 p 61 JAVA
2.3 Eerste Java programma wijzigen. Eén zin afdrukken met meerdere statements Meerdere zinnen afdrukken met één enkel statement Eén zin afdrukken met meerdere statements We wensen dezelfde tekst “Welcome to JAVA Programming” weergeven door gebruik te maken van 2 statemenst Meerdere zinnen afdrukken met één enkel statement We wensen meerdere zinnen (op verschillende lijnen) weergeven door gebruik te maken van 1 statement. JAVA
Eén zin met meerdere statements 9 System.out.print( "Welcome to " ); 10 System.out.println( "Java Programming!" ); 2 statements die 1 zin zullen weergeven. print is verschillend van println: print: geeft de zin weer op het scherm. De cursor blijft staan op het einde van de zin. println: geeft de zin weer op het scherm. De cursor wordt geplaatst op het begin van de volgende lijn. Welcome to Java Programming! JAVA
Meerdere zinnen met één enkel statement 9 System.out.println ( "Welcome\nto\nJava\nProgramming!" ); Welcome to Java Programming! Newline karakter (\n) “Speciale tekens” bij methodes System.out.print en system.out.println new line = harde return 1 statement die 4 zinnen zullen weergeven. \n = newline. De cursor wordt op het begin van de volgende lijn geplaatst. \n kan je gebruiken bij de methoden print en println. JAVA
Escape characters Backslash ( \ ) Speciale karakters die output vormgeven Voorbeelden : \n \t \r \\ \” \n = newline \t = horizontale tab. De cursor wordt 1 tab opgeschoven. \r = carriage return. De cursor wordt op het begin van dezelfde lijn geplaatst. \\ Dient om een backslash weer te geven. \“ Dient om een double quote weer te geven. System.out.println(“\\ is een backslash en \“ is een double quote“); Uitvoer: \ is een backslash en “ is een double quote JAVA
2.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 We zullen een dialog box gebruiken om onze tekst weer te geven. Dialog box: WAT? Dialog boxes zijn windows, waar boodschappen naar de gebruiker toe, worden weergegeven. In ons vorig voorbeeld gebruikten we het command venster: System.out.println(“…”); en/of System.out.println(“…”); JAVA
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 Voordeel van JAVA: veel voorgedefinieerde klassen. Groepen gerelateerde klassen = min of meer dezelfde functionaliteit GUI: bv. Menubar, buttons, textfield P 66 Er worden nog steeds nieuwe packages aangemaakt. Soms zijn die uitbreidingen op reeds bestaande packages. Kunnen gedownload worden van java.sun.com JAVA-API : Elk voor Java geschikt systeem wordt geleverd met een standaardbibliotheek die vooraf gebouwde klassen bevat die ontwikkelaars kunnen gebruiken om hun eigen programma's te bouwen. Bij Java 2 worden op het ogenblik duizenden klassen geleverd. U kunt deze meteen gebruiken of U kunt die aanpassen (uitbreiden) voor uw eigen doeleinden. De uitgebreide klassenbibliotheken van Java worden ook wel de Java-API (Application Programming Interface) genoemd, omdat ze de standaard Java-interfaces definiëren die ontwikkelaars tot hun beschikking hebben wanneer ze zelf programma 's maken. JAVA
2 // Meerdere lijnen in een dialog box afdrukken 3 1 // Fig. 2.6: Welcome4.java 2 // Meerdere lijnen in een dialog box afdrukken 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 JAVA
Twee groepen packages in Java API 4 // Java extension packages 5 import javax.swing.JOptionPane; 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 We maken een onderscheid tussen: core packages extension packages Meer uitleg in hoofstuk 6 JAVA API document: raadplegen: java.sun.com/j2se/1.3/docs/api/index.html downloaden: java.sun.com/j2se/1.3/docs.html JAVA
import statements 5 import javax.swing.JOptionPane; 4 // Java extension packages 5 import javax.swing.JOptionPane; 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 Localiseren: Voor elke klasse, die we in ons programma wensen te gebruiken, dienen we de « package » te vermelden. Laden niet juist!!! : De ‘import-statement’ geeft de compiler de opdracht de applicatie toegang te geven tot de klasse ‘JoptionPane’ van de package ‘javax.swing’. (Je kan dit vergelijken met ‘ga naar de bibliotheek, zoek het boek ‘javax.swing’ en ik wil hoofdstuk ‘JOptionPane’ gebruiken.) Het is belangrijk om te weten dat het importeren van klassen en volledige packages in de programma’s enkel toegang geeft tot deze bestanden; ze worden niet in de gecomplileerde code opgenomen, wat we misschien wel zouden verwachten. De JAVA-klassen die het programma gebruikt, worden tijdens runtime dynamisch geladen; ze gaan deel uitmaken van de bytecode van het programma. We ondervinden dus geen nadelen als we een volledig package importeren! JAVA
2 // Meerdere lijnen in een dialog boxafdrukken 3 1 // 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 User-defined-class -> Welcome4 In de body van deze klasse staat de methode main() We zullen de body van de main() bespreken. JAVA
Aanroep methode showMessageDialog van de klasse JOptionPane 12 JOptionPane.showMessageDialog( 13 null, "Welcome\nto\nJava\nProgramming!" ); 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 De methode showMessageDialog van de klasse JOptionPane Twee argumenten De methode heeft twee argumenten nodig om zijn taak te kunnen uitvoeren. Nu is eerste argument altijd null wordt in hfd 13 in detail uitgelegd. null = de dialog box wordt in het midden op het scherm weergegeven. Most applications you use on your computer execute in their own window (e.g. email programs, web browser and word processors). When such an application displays a dialog box, it normally appears in the center of the application window, which is not necessarily the center of the screen. showMessageDialog is een static methode van de klasse JOptionPane Je stuurt de methode naar een klasse. Iedere methode die je stuurt naar een klasse, is een static methode. JAVA
Aanroep static method exit van de klasse System 15 System.exit( 0 ); // beëindigt de applicatie 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 Stopt de applicatie Gebruiken in elke applicatie die een GUI toont REDEN: package java.lang: De enige package die automatisch wordt geïmporteerd. JAVA
2.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 We hebben gezien: een message box weergeven Nu gaan we een input dialog box gebruiken. JAVA
2 // Een bijkomend programma. 3 4 // Java extension packages 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 JAVA
Voeg commentaar toe om het doel van variabelen te beschrijven 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 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 Mogelijk meerdere variabelen van hetzelfde type tegelijkertijd te declareren: int number1, number2, sum; JAVA
Variabelen van het type int 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 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 JAVA
18 // lees eerste getal van gebruiker in als een String 19 firstNumber = 20 JOptionPane.showInputDialog( "Enter first integer" ); 21 22 // lees tweede getal van gebruiker in als een String 23 secondNumber = 24 JOptionPane.showInputDialog( "Enter second integer" ); 25 // som van number1 en number2 JAVA
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 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" ) Bij ingave van een verkeerd type van data (niet-integer) of bij klikken op Cancel, zal er zich een fout voordoen omdat op lijn 27, 28 de input wordt omgezet naar een integer. Hoe we fouten opvangen zullen we zien in hoofdstuk 14 = binaire operator - heeft twee operanden firstNumber = JOptionPane.showInputDialog(“Enter first Integer “); 1ste operand 2de operand argument JAVA
26 // converteer getallen van type String naar het type int 27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber ); 29 30 // Sommeer de getallen 31 sum = number1 + number2; 32 JAVA
Methode Integer.parseInt 27 number1 = Integer.parseInt( firstNumber ); 28 number2 = Integer.parseInt( secondNumber ); 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 JAVA
Toekenningsstatement 31 sum = number1 + number2; 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 JAVA
Visuele presentatie sum = 0; number1 = 1; number2 = 2; sum = number1 + number2; na uitvoering van statement sum sum 3 JAVA
34 JOptionPane.showMessageDialog( 33 // toon de resultaten 34 JOptionPane.showMessageDialog( 35 null, "The sum is " + sum, "Results", 36 JOptionPane.PLAIN_MESSAGE ); 37 38 System.exit( 0 ); // beëindigt de applicatie 39 40 } // einde methode main 41 42 } // eind klasse Addition JAVA
showMessageDialog om resultaten te tonen "The sum is " + sum 34 JOptionPane.showMessageDialog( 35 null, "The sum is " + sum, "Results", 36 JOptionPane.PLAIN_MESSAGE ); 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 " + sum in een nieuwe string "The sum is 117” Meer over strings in hoofdstuk 11 +: concatenatie van 2 strings " The sum is " string Sum wordt geconverteerd naar string JAVA
Andere versie van showMessageDialog 34 JOptionPane.showMessageDialog( 35 null, "The sum is " + sum, "Results", 36 JOptionPane.PLAIN_MESSAGE ); 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 Eerste argument: null null = message dialog zal in het midden van het scherm worden agebeeld. Later zullen de andere mogelijkheden bsproken worden. JAVA
JAVA
2.6 Geheugenopslag zie dia 36 JAVA
2.7 Rekenkundige bewerkingen Gebruik * voor vermenigvuldiging / voor deling +, - Geen operator voor exponent (zie hoofdstuk 5) Integer deling kapt quotiënt af 7 / 5 => 1 Rest-operator % 7 % 5 => 2 JAVA
Prioriteitsregels Haakjes ( ) * , / , % +, - Bij gelijke prioriteit => regels van de associativiteit (van L naar R) Bv. a = 2 * 2 + 3 * 3 a = 4 + 9 a = 13 Ander vb. a = 2 * (2 + 3) * 3 a = 2 * 5 * 3 a = 10 * 3 a = 30 JAVA
2.8 Beslissingen: 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 body_voorwaarde_geldig body is als er een compound gebruikt wordt, bij een enkelvoudige opdracht => statement Is die opdracht samen met de if en de voorwaarde één statement en dus als de voorwaarde geldt, dan wordt het statement uitgevoerd. voorbeelden: sum = 10; if (sum == 10) number1 = 5; de statement wordt uitgevoerd. sum = 11; { number1 = 5; number2 = 6; } de body wordt niet uitgevoerd. relationele operatoren: zie volgende slide JAVA
>= groter dan of gelijk aan <= kleiner dan of gelijk aan Operator In Java = = = exact gelijk != verschillend > > groter dan < < kleiner dan >= groter dan of gelijk aan <= kleiner dan of gelijk aan JAVA
1 // 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.JOptionPane; 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 Vergelijk integers gebruikmakend van if structuur, relationele operatoren en gelijkheidsoperatoren. JAVA
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 31 // initialiseer het resultaat als een lege String 32 result = ""; Lege string = bevat geen karakters. JAVA
35 result = number1 + " == " + number2; 36 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 34 if ( number1 == number2 ) 35 result = number1 + " == " + number2; +: concatenatie van strings. number1 wordt geconverteerd naar een string " == “ is reeds een string number2 wordt geconverteerd naar een string. uitleg staat op de volgende slide. 34 if ( number1 == number2 ) result = number1 + " == " + number2; de if-statement wordt afgesloten door ; if ( number1 == number2 ); Dan zal result = number1 + " == " + number2; altijd worden uitgevoerd. Maakt geen deel uit van de if-statement. JAVA
if structuur om te testen op gelijkheid (= =) 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; 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 JAVA
53 JOptionPane.showMessageDialog( 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 JAVA
Prioriteitsregels ( ) * , / , % +, - <, <=, >, >= ==, != = Bij gelijke prioriteit => alle operatoren worden verbonden van links naar rechts, behalve = (assignment) x = y = z => x = (y = z) int x, y; x = y = 0; x = (y = 0); y = 0 x = 0 IDEM ALS x = 0; y = 0; x = 2 + 3 + 1 x = (2 + 3) + 1 x = 5 + 1 = 6 JAVA
Oefeningen Hoofdstuk 2 JAVA
Geldige identifiers? Bill main Sue’s start begin xyz123 123xyz int y=2 prog#2 DitIsGoed dit_is_ook_goed zonne-kant $ Bill OK Main OK Sue’s ’ is een ongeldig teken Start OK Begin OK Xyz123 OK 123xyz niet beginnen met cijfers. Int gereserveerd woord y=2 Niet OK. Toekenning prog#2 # is een ongeldig teken DitIsGoed OK dit_is_ook_goed OK zonne-kant - is een ongeldig teken $ OK P 58 / slide 9 Methode main(): public static void main( String args[] ) main is geen gereserveerd woord. JAVA
Welke uitvoer krijgen we? System.out.println( ”getal1+getal2" ); System.out.println( getal1 + getal2 ); met in beide gevallen getal1=21 en getal2=43 getal1+getal2 64 JAVA
Hoe krijg je volgende zinnen op het scherm? Open de map C:\Mijn Documenten Volg de pijl “Omleiding” Het boek voor Java is dat van Deitel. Engelstalig System.out.println( "Open de map C:\\Mijn Documenten" ); System.out.println( "Volg de pijl \"Omleiding\""); System.out.println( "Het boek voor\tJava\nis dat van\tDeitel.\nEngelstalig"); JAVA
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= 2+3*4 = 2 + 12 = 14 (2+3)*4 = 5 * 4 = 20 6*3/2*4 = 18/2*4 = 9*4 = 36 6*3/(2*4) = 6*3/8 = 18/8 = 2 6*(8%(2*3)) = 6 * (8%6) = 6*2 = 12 17/8+9%5-3*2 = 2+9%5-3*2 = 2+4-3*2 = 2+4-6 = 6-6 = 0 17/(8+9)%(5-3)*2 = 17/17%(5-3)*2 = 17/17%2*2 = 1%2*2 = 1*2=2 12/(2*8%4) = 12/(16%4) = 12/(0) fout: deling door nul 20*17/8%4 = 340/8%4 = 42%4 = 2 JAVA
Vraag 2 getallen in en geef het grootste terug op het scherm. 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) JAVA