570 likes | 713 Views
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.2 Eerste Java-programma: Een zin afdrukken. Welcome to Java Programming!.
E N D
2.1 Inleiding • In dit hoofdstuk • Voorbeelden om enkele kenmerken van Java te illustreren • Twee programma vormen : • applicaties en • applets JAVA
2.2 Eerste Java-programma: Een zin afdrukken Welcome to Java Programming! Gewenste programma uitvoer : JAVA
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
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 : /** ... */ JAVA
3 • Blanco regel (lijn 3) • Zorgt voor de leesbaarheid van programma • Witregels, spaties en tabs = “wit-ruimte” karakters, door de compiler genegeerd JAVA
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
4 public classWelcome1 • 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 JAVA
4 public class Welcome1 • 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) • a1A1 • public sleutelwoord • Wordt later besproken JAVA
4 public class Welcome1 5 { … 13 }// einde klasse Welcome1 • Linkerhaakje (lijn 5) • Blokken vormen • Rechterhaakje sluit het blok (lijn 13) JAVA
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
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 JAVA
8 { 9 System.out.println( "Welcome to Java Programming!" ); 10 11 } // einde methode main • Linkerhaakje = begin body main • Afgesloten door rechterhaakje } (lijn 11) • 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 ; 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 JAVA
2.3 Eerste Java programma wijzigen. • Eén zin afdrukken met meerdere statements • Meerdere zinnen afdrukken met één enkel statement JAVA
9 System.out.print( "Welcome to " ); 10 System.out.println( "Java Programming!" ); Eén zin met meerdere statements Welcome to Java Programming! JAVA
9 System.out.println ( "Welcome\nto\nJava\nProgramming!" ); Meerdere zinnen met één enkel statement • Newline karakter (\n) • “Speciale tekens” bij methodes System.out.print en system.out.println • new line = harde return Welcome to Java Programming! JAVA
Escape characters • Backslash ( \ ) • Speciale karakters die output vormgeven • Voorbeelden : • \n • \t • \r • \\ • \” 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 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 JAVA
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
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 • Zitten in Java 2 Software Development Kit JAVA
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 JAVA
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 JAVA
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 JAVA
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 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 JAVA
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
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 JAVA
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" ) 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
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
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
31 sum = number1 + number2; sum sum 0 3 • Visuele presentatie • sum = 0; number1 = 1; number2 = 2; • sum = number1 + number2; na uitvoering van statement JAVA
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
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 sum117 bevat, dan resulteert "The sum is " + sumin een nieuwe string "The sum is 117” • Meer over strings in hoofdstuk 11 JAVA
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 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) 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 JAVA
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 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 JAVA
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
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
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