Inleiding Informatica Prof. Dr. Olga De Troyer Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk I: Kennismaking met Java Inleiding Informatica Prof. Dr. O. De Troyer Computer • Snelle “reken” machine • Voert enkel “reken”opdrachten uit • “Alles” wordt (uiteindelijk) herleid tot getallen (0 en 1) Inleiding Informatica Prof. Dr. O. De Troyer 2001 3 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 4 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 5 Basiselementen van Java • Objecten – Zijn weerspiegelingen van “dingen” uit de werkelijkheid Inleiding Informatica Prof. Dr. O. De Troyer 2001 6 Objecten object abstractie mijn_auto object abstractie Werkelijkheid Inleiding Informatica Prof. Dr. O. De Troyer Jan’s_fiets Modellen 2001 7 Model Objecten abstractie Attributen Methoden Inleiding Informatica Prof. Dr. O. De Troyer Object Toestand Kleur: blauw Merk: Opel Nummerplaat:ARJ775 Gedrag Rijden Remmen Toeteren 2001 8 Objecten communiceren Hallo, ik ben mr. Peters van de boekhouding. En u ben? Inleiding Informatica Berichten Prof. Dr. O. De Troyer Aangenaan, ik ben mevr Segers 2001 9 Berichten sturen om taken uit te voeren Graag, lunch voor 3 personen Inleiding Informatica Prof. Dr. O. De Troyer 2001 10 Een bericht activeert de overeenkomstige methode Remmen Object … Gedrag Rijden Remmen Toeteren Inleiding Informatica Prof. Dr. O. De Troyer 2001 11 Een Object Georiënteerd programma • Een programma is een opeenvolging opdrachten/instructies • Een OO programma is een opeenvolging van berichten Inleiding Informatica Prof. Dr. O. De Troyer 2001 12 Klassen Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden Remmen Toeteren • Gelijksoortige objecten met hetzelfde gedrag en gelijksoortige attributen worden gedefinieerd door een klasse Inleiding Informatica Prof. Dr. O. De Troyer 2001 13 Instanties van een klasse Instanties Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren Inleiding Informatica Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden Remmen Toeteren Object Toestand Kleur: zwart Merk: Ford Nummerplaat: CVX779 Gedrag Rijden Remmen Toeteren Prof. Dr. O. De Troyer Klasse Object Toestand Kleur: rood Merk: VW Nummerplaat: BXR824 Gedrag Rijden Remmen Toeteren 2001 14 Refereren naar objecten Referenties naar objecten MijnAuto Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren Opa’sAuto Jan’sAuto Object Toestand Kleur: rood Merk: VW Nummerplaat: BXR824 Gedrag Rijden Remmen Toeteren Object Toestand Kleur: zwart Merk: Ford Nummerplaat: CVX779 Gedrag Rijden Remmen Toeteren Laat toe om het object te identificeren: MijnAuto.Toeteren Opa’sAuto.Remmen Inleiding Informatica Prof. Dr. O. De Troyer 2001 15 Berichten met argumenten Voorbeeld: MijnAuto.Rijden • Maar hoe hard rijden? – Argumenten voor berichten: MijnAuto.Rijden(90) – Dus ook voor de corresponderen methode Inleiding Informatica Prof. Dr. O. De Troyer Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden(snelheid) Remmen Toeteren 2001 16 Vooraf gedefinieerde klassen en objecten • De meest gebruikelijke klassen en objecten zijn reeds vooraf gedefinieerd in Java. • Deze kunnen eenvoudigweg gebruikt worden. Inleiding Informatica Prof. Dr. O. De Troyer 2001 17 Een voorbeeld • Via Java willen we “Welkom iedereen” op de monitor van de computer laten verschijnen. System.out .println(“Welkom iedereen”) Referentie naar een voor gedefinieerd object van de voorgedefinieerde klasse “PrintStream” Inleiding Informatica Prof. Dr. O. De Troyer Boodschap naar object “System.out” Refereert naar het scherm 2001 18 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”); Inleiding Informatica Prof. Dr. O. De Troyer 2001 19 Een Java programma • Een opeenvolging van statements System.out.println(“Dit is mijn eerste Java programma”); System.out.println(“maar niet mijn laatste.”); Inleiding Informatica Prof. Dr. O. De Troyer 2001 20 Een Java programma (2) • Elke programma heeft een naam nodig en bijkomende informatie import java.io.*; class Programma1 { public static void main(String[] arg) { System.out.println(“Dit is mijn eerste Java programma”); System.out.println(“maar niet mijn laatste.”); } } Inleiding Informatica Prof. Dr. O. De Troyer 2001 21 Syntax regels • Regels die zeggen wat mag en niet mag in een Java programma • Vergelijkbaar met de grammatica regels van Nederlands, Engels, ... Inleiding Informatica Prof. Dr. O. De Troyer 2001 22 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 23 Sleutelwoorden • Woorden met een speciale vast gelegde betekenis noemt men sleutelwoorden (keyword) – Bvb: import, class, public, static, void – Tegen-vb: PrintStream Inleiding Informatica Prof. Dr. O. De Troyer 2001 24 • Regel: Twee opeenvolgende identifiers of sleutelwoorden zijn gescheiden door minstens één blanko. classProgramma1 Goed: class Programma1 Inleiding Informatica Prof. Dr. O. De Troyer 2001 25 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”); Inleiding Informatica Prof. Dr. O. De Troyer 2001 26 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 27 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”); } } Inleiding Informatica Prof. Dr. O. De Troyer 2001 28 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 29 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: [email protected]”); // mijn e-mail } } Inleiding Informatica Prof. Dr. O. De Troyer 2001 30 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 31 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. Inleiding Informatica Prof. Dr. O. De Troyer 2001 32 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 Output Editor Inleiding Informatica Prof. Dr. O. De Troyer Bestand met programma 2001 33 Java programma bestanden • Regel: – Naam van bestand van een programma is naam-programma.java Bvb: Programma1.java Inleiding Informatica Prof. Dr. O. De Troyer 2001 34 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 35 Vertalen van programma’s • Compiler – vertaalt programma naar machinetaal instructies (machine code) Input Programma Inleiding Informatica Compiler Prof. Dr. O. De Troyer Output Machine Code 2001 36 Vertalen van programma’s (2) • Interpreter – Voert de programma instructies uit door middel van machinetaal instructies Input Interpreter Programma Inleiding Informatica Prof. Dr. O. De Troyer Output “De programma uitvoer” Vb. Hallo iedereen 2001 37 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 Programma bestand Inleiding Informatica Java Compiler Prof. Dr. O. De Troyer Java bytecode bestand 2001 38 Stap 3: Vertaling uitvoeren • Java byte code kan niet direct uitgevoerd worden • Interpreter nodig Java bytecode bestand Java byte code Interpreter “De programma uitvoer” Vb. Hallo iedereen Inleiding Informatica Prof. Dr. O. De Troyer 2001 39 Dus alles samen Java Bestand Java Editor X.java Java Compiler Het programma invoeren Het programma compileren Java bytecode Bestand X.class Het programma uitvoeren “De programma uitvoer” Inleiding Informatica Java byte code Interpreter Prof. Dr. O. De Troyer 2001 40 Voordelen • Java byte code is niet machine afhankelijk – Dus compiler niet machine afhankelijk • Java byte code interpreters eenvoudiger dan Java interpreters Inleiding Informatica Prof. Dr. O. De Troyer 2001 41 Hoofdstuk 2: Objecten nader bekeken Inleiding Informatica Prof. Dr. O. De Troyer Referenties en objecten Referentie naar een object Object MijnAuto Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren “Het object MijnAuto” is eigenlijk een afkorting van “het object waarnaar MijnAuto refereert” Inleiding Informatica Prof. Dr. O. De Troyer 2001 43 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 44 Formaat van methoden • methodenaam(argument-1, argument-2, ...) • methodenaam(argument) • methodenaam( ) println(“Java”) methodenaam Inleiding Informatica argument Prof. Dr. O. De Troyer 2001 45 Methode print Methode print voor de klasse PrintStream – Geen nieuwe lijn na afdrukken van het argument: System.out.print(“Ja”) System.out.print(“va”) Inleiding Informatica Prof. Dr. O. De Troyer 2001 46 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 “hello” Object: instance van de klasse String “hello” Inleiding Informatica Prof. Dr. O. De Troyer 2001 47 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” Inleiding Informatica reference naar nieuw String object System.out.println(“ibm”.toUpperCase()); Prof. Dr. O. De Troyer 2001 48 Signatuur en prototype • Signatuur van een methode – Naam methode en beschrijving van de argumenten • vb: klasse PrintStream methode println argumenten: referentie naar String object Inleiding Informatica Prof. Dr. O. De Troyer 2001 49 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 Inleiding Informatica Prof. Dr. O. De Troyer 2001 50 Variabelen • Een variabele – Heeft een naam (identifier) • Bvb x, lijn, mijnVariabele – Kan een waarde hebben • Bvb x heeft de waarde 5 – Waarde kan wijzigen Naam van de variabele Grafische voorstelling x 5 Inleiding Informatica Prof. Dr. O. De Troyer Inhoud (of waarde) van de variabele 2001 51 Variabelen (2) • De waarde van een variabele kan men opvragen – Door middel van de naam van de variabele x 5 … x ... geeft waarde van x, namelijk 5 Inleiding Informatica Prof. Dr. O. De Troyer 2001 52 Variabelen (3) • Bij uitvoering beschikt het programma over een stuk van het computer geheugen • Een variabele is een stukje van dit computer geheugen x – Kan men het gebruiken om “iets te bewaren” • Vb (tussen)resultaat van een berekening – Waarden opgeslagen via variabelen verdwijnen wanneer de uitvoering van het programma stopt. Inleiding Informatica Prof. Dr. O. De Troyer 2001 53 Referentie Variabelen • Een referentie variabele – Is een variabele – De waarde is een referentie naar een object – Laat toe om referenties naar objecten te bewaren voor later gebruik Inhoud (of waarde) van de variabele Naam van de variabele y Inleiding Informatica Prof. Dr. O. De Troyer 2001 54 Referentie Variabelen (2) Voorbeeld gebruik referentie variabele Bvb lijn heeft de waarde “youhou youhou youhou” lijn “youhou youhou youhou” Opvragen van de waarde van de referentie variabele Gebruik: System.out.println(lijn); System.out.println(lijn); System.out.println(lijn.toUpperCase()); Inleiding Informatica Prof. Dr. O. De Troyer 2001 55 Declaraties • Een declaratie is een statement dat een variabele introduceert in het programma – Formaat: type naam-variabele; Voorbeelden: type String int type Inleiding Informatica groeten; naam x; groeten x naam Prof. Dr. O. De Troyer 2001 56 Assigment (Toekenning) • Het toekennen van een waarde aan een variabele – Formaat: naam-variabele = waarde ; Vb-en: x=5; x 5 groeten = “Hallo” ; groeten “Hallo” Inleiding Informatica Prof. Dr. O. De Troyer 2001 57 Assigment (2) • Een variabele kan pas worden gebruikt nadat ze werd gedeclareerd Vb1: Vb2: int x; x=5; System.out.println( x ); String groeten; groeten = “Hallo”; System.out.println( groeten ); x 5 groeten “Hallo” Inleiding Informatica Prof. Dr. O. De Troyer 2001 58 Assignment: regel • Type van waarde moet hetzelfde zijn als type van de variabele Type van de variabele String groeten; groeten = “Hallo”; String groeten; groeten = 5 ; Inleiding Informatica Prof. Dr. O. De Troyer 2001 59 Assignment met waarde toekenning • Het toekennen van een waarde aan een variabele tijdens de deklaratie – Formaat: type identifier = waarde ; Vb: String int Inleiding Informatica groeten = “Hallo”; x=5; Prof. Dr. O. De Troyer 2001 60 Meer over variabelen • Meerdere variabelen in één declaratie type Vb: naam-variabele1, naam-variabele2, … ; String groeten, naam, lijn ; int i, j, k ; Conventie: Variabele namen starten met kleine letter Inleiding Informatica Prof. Dr. O. De Troyer 2001 61 Meer over variabelen (2) • Na declaratie en voor de eerste toekenning is de waarde van een variabele onbepaald int x x; 105 x = 5; x = 10; • Een variabele kan op één moment maar één waarde bevatten. Inleiding Informatica Prof. Dr. O. De Troyer 2001 62 Meer over variabelen (3) • Een referentie variabele kan op één moment naar slechts één object refereren. String t t; t = “herfst” ; Referentie naar “herfst” is weg! “herfst” t = “winter” ; “winter” Inleiding Informatica Prof. Dr. O. De Troyer 2001 63 Waarde van een variabele wijzigen • Waarde wijzigen gebaseerd op de huidige waarde i 3 int i ; i = 3; i = i * 4; 12 Resultaat berekenen : 3 * 4 = 12 Resultaat (12) toekennen aan i Waarde opvragen : 3 Inleiding Informatica Prof. Dr. O. De Troyer 2001 64 Null • Het sleutelwoord null kan men gebruiken om aan te geven dat een referentie variabele nergens naar refereert t String t ; null t = null ; Inleiding Informatica Prof. Dr. O. De Troyer 2001 65 Meer over variabelen (3) • Verschillende variabelen kunnen dezelfde waarde bevatten. int i, j ; i 5 j 5 i=5; j=i; i wordt hier gebruikt om de waarde van de variabele i op te vragen j wordt hier gebruikt om de variabele j een waarde te geven Inleiding Informatica Prof. Dr. O. De Troyer 2001 66 Meer over variabelen (4) • Verschillende referentie variabelen kunnen naar hetzelfde object verwijzen. String s, t ; t = “herfst” ; t s “herfst” s=t; t wordt hier gebruikt om de waarde van de variabele t op te vragen s wordt hier gebruikt om de variabele s een waarde te geven Inleiding Informatica Prof. Dr. O. De Troyer 2001 67 Meer over variabelen (4) • (Referentie) variabelen zijn onafhankelijk int i, j; i j 5 i=5; 5 10 j=i; i = 10 ; String s, t ; t s t = “herfst” ; “herfst” s=t; t = “winter” ; Inleiding Informatica Prof. Dr. O. De Troyer “winter” 2001 68 Meer over statements • Volgorde van de statements is belangrijk – Cf echte leven • Niet: eerst ei in pan en dan pan verwarmen • Plaats van declaraties niet belangrijk zolang ze voor het gebruik ervan komen import java.io.*; class Programma2 { public static void main ( String [] arg) { String groeten ; groeten = “groeten” ; String veelGroeten ; veelGroeten = “veel groeten” ; System.out.println( groeten ); System.out.println( veelGroeten ); } } Inleiding Informatica Prof. Dr. O. De Troyer 2001 69 String Methoden - voorbeelden Methodenaam gedrag Return waarde Argumenten toUpp erCase naar hoofdletters toLowerCase Naar kleine letters ref naar String object geen length Lengte een getal trim zonder spaties en tab aan begin en einde Plakt strings aan elkaar Reststring vanaf gegeven positie Deelstring ref naar String object geen concat substring substring Inleiding Informatica ref naar String object geen geen ref naar String object ref naar String object ref naar String object een getal ref naar String object twee getal Prof. Dr. O. De Troyer 2001 70 String Methoden (2) • Positie van karakters in een String begint bij 0! h a m b u r g e r 0 1 2 3 4 5 6 7 8 Eerste karakter Positie 0 Vierde karakter Positie 3 Inleiding Informatica Prof. Dr. O. De Troyer 2001 71 String Methoden String s, t, u ; s = “ham”; t = “burger”; u = s.concat( t ); Inleiding Informatica Prof. Dr. O. De Troyer s t u “ham” “burger” “hamburger” 2001 72 String Methoden (2) String s, t, u ; s = “hamburger”; t = s.substring(3) s t “hamburger” “burger” Positie van begin van rest string u u = s.substring(3 , 7) Laatste positie niet in substring Inleiding Informatica Prof. Dr. O. De Troyer “burg” h a m b u r g e r 0 1 2 3 4 5 6 7 8 2001 73 Overloading String s,t,u ; s = “hamburger”; t = s.substring(3); u = s.substring(3, 7); Twee verschillende methoden? Ja! • Dezelfde naam • Maar verschillende signatuur dus te onderscheiden Dit noemt men “overloading” Inleiding Informatica Prof. Dr. O. De Troyer 2001 74 Voorbeeld gebruik van strings - 1 • Vind het middelste karakter van de string “hottentottententoonstelling” • Wat nodig? – Variabele voor het woord String woord = “hottentottententoonstelling”; – Variabele voor het middelste karakter; • kararkter is ook een string String midden ; (later zien we ook karakters) Inleiding Informatica Prof. Dr. O. De Troyer 2001 75 – Hoe het middelste karakter vinden? • Middelste karakter op middelste positie – Hoe de middelste positie vinden? vb: “nooit” lengte: 5 middelste positie: 2 (opgelet nummering begint bij 0) nooit 01234 • Dus middelste positie is lengte gedeeld door 2: woord.length() / 2 Inleiding Informatica Prof. Dr. O. De Troyer 2001 76 – Hoe karakter op middelste positie eruit halen? • Via substring methode: woord.substring(“middelste positie”, “ 1 + middelste positie”) – Of dus: woord.substring(woord.length () / 2, 1 + woord.length () / 2 ) Inleiding Informatica Prof. Dr. O. De Troyer 2001 77 Alles samen import java.io.*; class Programma1 { public static void main(String[] arg) { String woord, midden ; woord = “hottentottententoonstelling” ; midden = woord.substring( woord.length () / 2, 1 +woord.length () /2 ); System.out.println(midden); } } Inleiding Informatica Prof. Dr. O. De Troyer 2001 78 Voorbeeld 2 • Gegeven zijn een voornaam en een achternaam. Druk de initialen van deze naam af. • Wat nodig? – Variabelen voor het voornaam en achternaam String voornaam, achternaam ; – Variabele voor de initialen String initialen ; Inleiding Informatica Prof. Dr. O. De Troyer 2001 79 – Hoe initialen vinden? • Eerste karakter van elke naam voornaam.substring(0, 1); achternaam.substring(0, 1); Jan Peeters • Nog nodig, dus referentie bijhouden door middel van variabelen eersteInit “J” String eersteInit, tweedeInit; eersteInit = voornaam.substring(0, 1); tweedeInit = achternaam.substring(0, 1); tweedeInit “P” – Hoe samenvoegen ? • Via concat methode initialen = eersteInit.concat(tweedeInit); Inleiding Informatica Prof. Dr. O. De Troyer initialen “JP” 2001 80 Alles samen import java.io.*; class Programma1 { public static void main(String[] arg) { String voornaam, achternaam, initialen ; voornaam = “Jan” ; achternaam = “Peeters” ; String eersteInit, tweedeInit ; eersteInit = voornaam.substring( 0, 1 ); tweedeInit = achternaam.substring( 0, 1 ); initialen = eersteInit. concat(tweedeInit) ; System.out.println(initialen); } } Inleiding Informatica Prof. Dr. O. De Troyer 2001 81 Cascading • Veronderstel in voorbeeld2: voornaam, middelnaam en achternaam Jan Geert Peeters Dan 3 initialen: eersteInit, tweedeInit en derdeInit initialen = eersteInit.concat(tweedeInit); initialen = initialen.concat(derdeInit); “JG” “JGP” Of initialen = eersteInit.concat(tweedeInit) .concat(derdeInit); is een object Dus we kunnen er een boodschap naar sturen Inleiding Informatica Prof. Dr. O. De Troyer 2001 82 Compositie • Nog anders: initialen = tweedeInit.concat(derdeInit); initialen = eersteInit.concat(initialen); “GP” “JGP” Of initialen = eersteInit.concat( tweedeInit.concat(derdeInit) ) is een object Dus we kunnen het gebruiken als argument van een boodschap Inleiding Informatica Prof. Dr. O. De Troyer 2001 83 Lege string • String zonder karakters “” • Lengte van een lege string is 0 • Is verschillend van null Inleiding Informatica Prof. Dr. O. De Troyer 2001 84 Zelf objecten maken String constanten, System.out zijn voorbeelden van voorgedefinieerde objecten. • Een object is een instantie van een klasse • Elke klasse heeft een methode om nieuwe instanties te maken – Deze methode wordt een constructor genoemd • Naam van een constructor is steeds gelijk aan de naam van de klasse bv: klasse Auto constructor: Auto Inleiding Informatica Prof. Dr. O. De Troyer 2001 85 Zelf objecten maken (2) • Nieuwe instantie van een klasse maken door het sturen van een boodschap naar de klasse – Geen object-ontvanger – Object-ontvanger vervangen door het sleutelwoord new new Auto() Nieuw object van het type Auto Constructor • Een constructor kan argumenten hebben Bv: new Auto (“Ford”) Inleiding Informatica Prof. Dr. O. De Troyer 2001 86 Zelf objecten maken (3) • Referentie naar nieuw object nodig! Auto mijnAuto ; mijnAuto mijnAuto = new Auto() ; Inleiding Informatica Prof. Dr. O. De Troyer 2001 87