870 likes | 1.08k Views
Inleiding Informatica. Prof. Dr. Olga De Troyer. Hoofdstuk I: Kennismaking met Java. Computer. Snelle “reken” machine Voert enkel “reken”opdrachten uit “Alles” wordt (uiteindelijk) herleid tot getallen (0 en 1). Programma. Tekst die een computer een taak laat uitvoeren
E N D
Inleiding Informatica Prof. Dr. Olga De Troyer
Computer • Snelle “reken” machine • Voert enkel “reken”opdrachten uit • “Alles” wordt (uiteindelijk) herleid tot getallen (0 en 1)
Programma • Tekst die een computer een taak laat uitvoeren • De tekst is een reeks opdrachten na elkaar, code genoemd • Geschreven in een speciale taal, een programmeertaal
Doel van de cursus • Aanleren van het lezen en schrijven van programma’s in de programmeertaal Java • Java is een recente object georiënteerde programmeertaal
Basiselementen van Java • Objecten • Zijn weerspiegelingen van “dingen” uit de werkelijkheid
object abstractie mijn_auto object abstractie Jan’s_fiets Werkelijkheid Modellen Objecten
Model abstractie Attributen Methoden Objecten Object Toestand Kleur: blauw Merk: Opel Nummerplaat:ARJ775 • Gedrag • Rijden • Remmen • Toeteren
Berichten Hallo, ik ben mr. Peters van de boekhouding. En u ben? Aangenaan, ik ben mevr Segers Objecten communiceren
Graag, lunch voor 3 personen Berichten sturen om taken uit te voeren
Remmen Een bericht activeert de overeenkomstige methode Object … • Gedrag • Rijden • Remmen • Toeteren
Een Object Georiënteerd programma • Een programma is een opeenvolging opdrachten/instructies • Een OO programma is een opeenvolging van berichten
Klassen Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden Remmen Toeteren • Gelijksoortige objecten met hetzelfde gedrag en gelijksoortige attributen worden gedefinieerd door een klasse
Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden Remmen Toeteren Klasse Instanties Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren Object Toestand Kleur: rood Merk: VW Nummerplaat: BXR824 Gedrag Rijden Remmen Toeteren Object Toestand Kleur: zwart Merk: Ford Nummerplaat: CVX779 Gedrag Rijden Remmen Toeteren Instanties van een klasse
Referenties naar objecten Jan’sAuto MijnAuto Opa’sAuto Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren Object Toestand Kleur: rood Merk: VW Nummerplaat: BXR824 Gedrag Rijden Remmen Toeteren Object Toestand Kleur: zwart Merk: Ford Nummerplaat: CVX779 Gedrag Rijden Remmen Toeteren Refereren naar objecten Laat toe om het object te identificeren: MijnAuto.Toeteren Opa’sAuto.Remmen
Berichten met argumenten Voorbeeld: MijnAuto.Rijden • Maar hoe hard rijden? • Argumenten voor berichten: MijnAuto.Rijden(90) • Dus ook voor de corresponderen methode Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden(snelheid) Remmen Toeteren
Vooraf gedefinieerde klassen en objecten • De meest gebruikelijke klassen en objecten zijn reeds vooraf gedefinieerd in Java. • Deze kunnen eenvoudigweg gebruikt worden.
Referentie naar een voor gedefinieerd object van de voorgedefinieerde klasse “PrintStream” Boodschap naar object “System.out” Refereert naar het scherm Een voorbeeld • Via Java willen we “Welkom iedereen” op de monitor van de computer laten verschijnen. System.out .println(“Welkom iedereen”)
Java Statements • Een boodschap naar een object sturen is een actie. • De computer voert de acties uit wanneer het programma uitgevoerd wordt • In Java noemt men acties “statements” • Statements eindigen met een “;” System.out.println(“Welkom iedereen”);
Een Java programma • Een opeenvolging van statements System.out.println(“Dit is mijn eerste Java programma”); System.out.println(“maar niet mijn laatste.”);
Een Java programma (2) • Elke programma heeft een naam nodig en bijkomende informatie import java.io.*; classProgramma1{ public static void main(String[] arg) { System.out.println(“Dit is mijn eerste Java programma”); System.out.println(“maar niet mijn laatste.”); } }
Syntax regels • Regels die zeggen wat mag en niet mag in een Java programma • Vergelijkbaar met de grammatica regels van Nederlands, Engels, ...
Identifiers • Elke klasse moet een naam hebben; namen worden ook wel identifiers genoemd • Bvb: Programma1, PrintStream • Hoofdletters en kleine letters zijn verschillend • Bvb: System en system
Sleutelwoorden • Woorden met een speciale vast gelegde betekenis noemt men sleutelwoorden (keyword) • Bvb: import, class, public, static, void • Tegen-vb: PrintStream
Regel: Twee opeenvolgende identifiers of sleutelwoorden zijn gescheiden door minstens één blanko. classProgramma1 • Goed: class Programma1
De volgorde van de statements • Statements worden uitgevoerd in volgorde van voorkomen. System.out.println(“Een Twee”); System.out.println(“Drie Vier.”); Resultaat is verschillend van System.out.println(“Drie Vier.”); System.out.println(“Een Twee”);
Leesbare programma’s • Advies • Zet elk statement op een aparte lijn • Indien te lang, breek op en spring in vanaf de 2de lijn • Gebruik TAB om in te springen, geen spaties
import java.io.*; class Programma1 {public static void main(String[] arg) { System.out.println(“Dit is mijn eerste Java programma”); System.out.println(“dit een een nieuwe lijn.”) } } • import java.io.*; • class Programma1 { • public static void main(String[] arg) { System.out.println(“Dit is mijn eerste Java programma”); • System.out.println • (“dit een een zeeeeeeeeeeeeeeeeeeer lange lijn”); • } • }
Commentaar • Tekst in het programma om het programma (of delen ervan) te verklaren • Wordt door de computer genegeerd /* dit is commentaar en mag over verschillende lijnen lopen */ // duidt aan dat de rest van de lijn commentaar is
import java.io.*; /* * Programma1 schrijft mijn naam en e-mail op het scherm */ class Programma1 { public static void main(String[] arg) { System.out.println(“Prof. Dr. Olga De Troyer”); // mijn naam System.out.println(“e-mail: Olga.DeTroyer@vub.ac.be”); // mijn e-mail } }
Hoe een programma laten uitvoeren? 1. Programma invoeren in de computer 2. Programma vertalen naar een vorm die de computer kan uitvoeren 3. Instructie geven aan de computer om het programma uit te voeren
Stap 1: Programma invoeren Door middel van een bestand (file) • Bestand • Collectie van informatie • Heeft een naam • Kan opgeslagen worden op de harde schijf van de computer • Bepaalde software laat toe om bestanden aan te maken, bvb: tekst-processors Bestanden voor programma’s worden aangemaakt door editors.
Output Bestand met programma Editor • Vergelijkbaar met een tekst processor • Laat toe om tekst in te voeren • Laat toe om de tekst te bewaren in een bestand • Kent geen tekst formattering zoals tekst processor Editor
Java programma bestanden • Regel: • Naam van bestand van een programma is naam-programma.java Bvb: Programma1.java
Stap 2: Programma vertalen • Computer kan alleen primitieve instructies uitvoeren, instructies uit de machinetaal • Machinetaal afhankelijk van soort computer • Dus vertaalslag nodig van Java naar machinetaal
Input Output Programma Machine Code Vertalen van programma’s • Compiler • vertaalt programma naar machinetaal instructies (machine code) Compiler
Input Output Programma “De programma uitvoer” Vb. Hallo iedereen Vertalen van programma’s (2) • Interpreter • Voert de programma instructies uit door middel van machinetaal instructies Interpreter
Java bytecode bestand Java Programma bestand Vertalen van Java programma’s • Combinatie van compiler en interpreter • Java compiler vertaalt Java programma niet naar machinetaal maar naar een “neutrale” soort van machinetaal, Java byte code genoemd Java Compiler
Java bytecode bestand “De programma uitvoer” Vb. Hallo iedereen Stap 3: Vertaling uitvoeren • Java byte code kan niet direct uitgevoerd worden • Interpreter nodig Java byte code Interpreter
Java Bestand X.java Het programma invoeren Java bytecode Bestand X.class Het programma compileren Het programma uitvoeren “De programma uitvoer” Dus alles samen Java Editor Java Compiler Java byte code Interpreter
Voordelen • Java byte code is niet machine afhankelijk • Dus compiler niet machine afhankelijk • Java byte code interpreters eenvoudiger dan Java interpreters
Referentie naar een object Object MijnAuto Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren Referenties en objecten “Het object MijnAuto” is eigenlijk een afkorting van “het object waarnaar MijnAuto refereert”
Identifiers • Naam van een klasse start met een hoofdletter, bvb. PrintStream • Naam van methode start met kleine letter, bvb. println • Alle andere letters zijn kleine letters, behalve indien naam bestaat uit meerdere woorden, bvb. printStream
methodenaam argument Formaat van methoden • methodenaam(argument-1, argument-2, ...) • methodenaam(argument) • methodenaam() println(“Java”)
Methode print Methode print voor de klasse PrintStream • Geen nieuwe lijn na afdrukken van het argument: System.out.print(“Ja”) System.out.print(“va”)
Object: instance van de klasse String “hello” “hello” Strings • Een string is een opeenvolging van karakters (letters, cijfers, leestekens, …) Bvb. “Welkom iedereen” • In Java wordt de string zelf gebruikt om naar een string object te refereren.Dit zijn String Constanten
De klasse String • Methoden van String • Wijzigen de ontvanger (object) niet • Geven steeds een referentie naar een nieuw String object terug Bvb:toUpperCase() • Geen argumenten • Bvb: “ibm”.toUpperCase() ; • “IBM” reference naar nieuw String object • System.out.println(“ibm”.toUpperCase());
Signatuur en prototype • Signatuur van een methode • Naam methode en beschrijving van de argumenten • vb: klasse PrintStream methode println argumenten: referentie naar String object
Signatuur en prototype (2) • Prototype van een methode • Signatuur en beschrijving van de “return” waarde • vb1: klasse PrintStream methode println argumenten: referentie naar String object return waarde: geen • vb2: klasse String methode toUpperCase argumenten: geen return waarde: referentie naar String object