H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering van elektronische apparatuur. Voor 1995 had bijna niemand ervan gehoord. JAVA 1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA (vervolg) Java (OAK) is in 1990 ontworpen voor de programmering van allerlei intelligente elektronische gebruikersapparatuur. Elektronische apparatuur bevat chips. Een chip kan -> gegevens onthouden -> een reeks van instructies automatisch uitvoeren = programma Een programma wordt uitgevoerd door een andere chip, de processor. Probleem : begrijpt enkel zijn eigen specifieke machinecode! -> onleesbaar voor de mens (0 en 1) JAVA 2 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA (vervolg) Oplossing: programma schrijven in een hogere programmeertaal (Cobol, Java, Pascal, …) -> een compiler (vertaler) zal het programma omzetten naar een specifieke machinecode Probleem: het programma is platformafhankelijk (= combinatie van een bepaald type processor met een bepaald besturingssysteem) JAVA 3 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA (vervolg) Oplossing: Java 1. Elk Java-programma wordt door een compiler vertaald naar een soort TUSSENTAAL (=JAVA-bytecode), die betrekkelijk dicht tegen machinecode aanleunt. 2. De tussentaal wordt begrijpelijk gemaakt voor een specifieke processor, door deze van een programma te voorzien (=JAVA VIRTUAL MACHINE). Een JVM is een tamelijk klein programma (256 Kb), vermits het vertalen niet zo’n grote klus is. JAVA is platformonafhankelijk! JAVA 4 2. APPLICATIE EN APPLET 2.1 Er bestaan twee soorten Java-programma’s: Applicatie: • een applicatie is een Java-programma, cfr. programma’s in C++ (vb. Word, tekenprogramma,…) • wordt bewaard en uitgevoerd op lokale PC • uitvoerbaar mits JVM, geen webbrowser nodig • kan bestanden op schijf maken, lezen en verwijderen JAVA 5 2. APPLICATIE EN APPLET 2.1 Er bestaan twee soorten Java-programma’s: Applet: • maakt deel uit van een webpagina en zorgt voor de interactiviteit van de pagina -> wordt meestal bewaard op een PC op afstand • uitvoerbaar mits webbrowser ( + JVM) of appletviewer • bijna geen bestandsverwerking of netwerktoepassingen mogelijk (werkt in een beveiligde omgeving) JAVA 6 2.2 APPLICATIE - voorbeeld import java.lang.*; //mag weggelaten worden, want wordt automatisch // geïmporteerd public class Som [extends Object] { public static void main( String[] args) { int x = 2, y = 3, som; som = x * x + y * y; System.out.println("Som = "+ som); } } JAVA 7 UITVOERING APPLICATIE JAVA 8 2.3 APPLET - voorbeeld import java.awt.Graphics; import javax.swing.JApplet; public class Applet1 extends JApplet { private Font f = new Font(“TimesRoman”,Font.BOLD,36); public void paint(Graphics g) { super.paint(g); g.setFont(f); g.setColor(Color.red); g.drawString(“Een bijzonder eenvoudige applet”,20,150); } } JAVA 9 UITVOERING APPLET JAVA 10 2.4 DE 5 FASEN-APPLICATIE Schematisch: Java-programma (Som.java) compiler Compilatie Java byte-code (Som.class) Internet interpreter verwerking Java byte-code verificatie JAVA (Som.class) 11 DE 5 FASEN-APPLICATIE 1. Met een editor het java-programma intypen en bewaren met extensie .java -> Som.java 2. Het programma compileren met het commando javac. Het resultaat is een file met extensie .class (= bytecode). -> javac Som.java geeft Som.class 3. Het programma (de .class-file) wordt geladen in het geheugen. 4. De bytecode wordt geverifieerd (belangrijk wanneer we klassen gebruiken van het net, die mogelijk virussen bevatten). 5. Het programma wordt uitgevoerd, door gebruik te maken van de Java-vertaler, via het commando java -> java Som JAVA 12 2.5 DE 5 FASEN - APPLET Schematisch: Computer die bezocht wordt Java-programma (Applet1.java) compiler Compilatie Java byte-code (Applet1.class) Internet Uw computer Java virtuele machine Java byte-code (Applet1.class) interpreter verificatie verwerking JAVA Browser omgeving 13 DE 5 FASEN-APPLET 1. Met een editor de java-applet intypen en bewaren met extensie .java -> Applet1.java 2. De applet compileren met het commando javac. Het resultaat is een file met extensie .class (= bytecode). -> javac Applet1.java geeft Applet1.class 3. De applet (de class-file) bevindt zich normaal op een computer op afstand en gebruikers hebben er toegang tot via het World Wide Web. Een HTML - document verwijst naar een Java-applet (zie dia 16) en deze wordt vervolgens gedownload op uw eigen PC. De applet wordt uit dezelfde directory gehaald als waar de HTML-file in zit. JAVA 14 DE 5 FASEN-APPLET (vervolg) 4. Voor de applet wordt uitgevoerd, wordt de bytecode geverifieerd op afwijkende code, gevaarlijke handelingen of virussen. 5. De applet wordt uitgevoerd, door de vertaler die in de browser ingebouwd moet zijn of vanaf de commando-lijn met de zgn. appletviewer = applet container: -> appletviewer Applet1.html De appletviewer is een minimale browser, die enkel de referentie naar de applet kan interpreteren (<applet>- en </applet>-tag) en de rest van het HTML-document negeert! JAVA 15 HTML-CODE : Applet1.html <HTML> <HEAD> <TITLE> Eerste voorbeeld </TITLE> </HEAD> <BODY> <APPLET CODE= “Applet1.class” WIDTH= “426“ HEIGHT= “266“> </APPLET> </BODY> </HTML> JAVA 16 2.6 HET JAVA PLATFORM Applet1.class Java API Java Virtual Machine Operating system + Hardware JAVA 17 3. ONTWERPDOELEN (1) JAVA • is eenvoudiger dan C++ • heeft een automatische garbage collection • is klein • is object georiënteerd • is betrouwbaar JAVA 18 ONTWERPDOELEN (2) JAVA • is veilig • is architectuurneutraal • is portable • heeft een goede performance • is multithreaded JAVA 19 4. WAT HEB JE NODIG ? o o o o een een een een editor, bijv. Notepad of Wordpad compiler JVM browser of applet-viewer Compiler + JVM = JAVA DEVELOPMENT KIT (JDK) of JAVA 2 Software Development Kit (Java 2 SDK) (www.sun.com) Sinds 1995 zijn er verschillende versies van JDK verschenen: versie 1.0, versie 1.1, versie 1.2, versie 1.3, versie 1.4 Elke versie kan weer subversies hebben. De versies vanaf versie 1.2 worden ook aangeduid met het Java 2 platform. JAVA 20 4. WAT HEB JE NODIG ? (vervolg) Bouwen we een volledige omgeving rond de programmeertaal, zodat de ontwikkelingstijd nodig voor het schrijven van een programma sterk wordt gereduceerd, dan verkrijgen we een zogenaamde geïntegreerde ontwikkelomgeving, Integrated Development Environment of IDE. Veel gebruikte IDE: JBuilder (www.borland.com), Forte (www.sun.com), Eclips, TogetherSoft, …. JAVA 21 5. BASISELEMENTEN VAN JAVA Objecten. zijn weerspiegelingen van "dingen" uit de werkelijkheid. Voorbeeld : auto's JAVA 22 5. BASISELEMENTEN VAN JAVA - OBJECTEN MODEL ABSTRACTIE Object Toestand Kleur Merk Type Nrplaat Chassisnummer Gedrag Rijden Remmen Toeteren JAVA ATTRIBUTEN/ EIGENSCHAPPEN METHODEN 23 5. BASISELEMENTEN VAN JAVA Klassen. Gelijksoortige objecten met hetzelfde gedrag en gelijksoortige attributen worden gedefinieerd door een klasse(=mal-abstract). JAVA 24 5. BASISELEMENTEN VAN JAVA - KLASSEN ABSTRACTIE Klasse Auto Toestand Kleur Merk Type Nrplaat Chassisnummer Gedrag Rijden Remmen Toeteren JAVA 25 5. BASISELEMENTEN VAN JAVA Instanties van een klasse. Object=concreet Aanmaken van een nieuwe instantie gebeurt door het aanroepen van de constructor. JAVA 26 5. BASISELEMENTEN VAN JAVA - INSTANTIES Klasse Auto Toestand Kleur Merk Type Nrplaat Chassisnummer Gedrag Rijden Remmen Toeteren Object 1 Toestand Kleur : Blauw Merk : Opel Type : Vectra Nrplaat : ARJ775 Chassisnummer : Gedrag ... INSTANTIES Object 2 Toestand Kleur : Rood Merk : Ford Type : Focus Nrplaat : CVX779 Chassisnummer : Gedrag ... JAVA Object 3 Toestand Kleur : Geel Merk : Renault Type : Berline Nrplaat : BXR824 Chassisnummer : Gedrag ... 27 5. BASISELEMENTEN VAN JAVA Refereren naar objecten. (Referentie-)variabelen laten toe om het object te identificeren. JAVA 28 5. BASISELEMENTEN VAN JAVA - REFERENTIEVARIABELEN mijnAuto opa'sAuto jufsAuto Object 1 Toestand Kleur : Blauw Merk : Opel Type : Vectra Nrplaat : ARJ775 Chassisnummer : Gedrag ... Object 2 Toestand Kleur : Rood Merk : Ford Type : Focus Nrplaat : CVX779 Chassisnummer : Gedrag ... Object 3 Toestand Kleur : Geel Merk : Renault Type : Berline Nrplaat : BXR824 Chassisnummer : Gedrag ... Het object mijnAuto = het object waarnaar de (referentie)variabele mijnAuto naar refereert. Vb. : mijnAuto.Toeteren, opa'sAuto.Remmen JAVA 29 5. BASISELEMENTEN VAN JAVA Methodes Objecten communiceren via berichten (messages). Een bericht activeert de overeenkomstige methode(s). JAVA 30 5. BASISELEMENTEN VAN JAVA - METHODES Object 2 Toestand Kleur : Rood Merk : Ford Type : Focus Nrplaat : CVX779 Chassisnummer : Gedrag Rijden Remmen Toeteren ... Remmen JAVA 31 5. BASISELEMENTEN VAN JAVA Een object-georiënteerd programma. Een programma = opeenvolging van opdrachten/instructies. Een OO-programma is een opeenvolging van berichten. JAVA 32 6. DEMO BlueJ JAVA 33