Inleiding Informatica

advertisement
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
Download