De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Inleiding Informatica

Verwante presentaties


Presentatie over: "Inleiding Informatica"— Transcript van de presentatie:

1 Inleiding Informatica
Prof. Dr. Olga De Troyer

2 Hoofdstuk I: Kennismaking met Java

3 Computer Snelle “reken” machine Voert enkel “reken”opdrachten uit
“Alles” wordt (uiteindelijk) herleid tot getallen (0 en 1)

4 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

5 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

6 Basiselementen van Java
Objecten Zijn weerspiegelingen van “dingen” uit de werkelijkheid

7 Objecten mijn_auto object Jan’s_fiets abstractie Modellen
Werkelijkheid

8 Objecten Model Object abstractie Toestand Kleur: blauw Merk: Opel
Nummerplaat:ARJ775 Attributen Gedrag Rijden Remmen Toeteren Methoden

9 Objecten communiceren
Berichten Hallo, ik ben mr. Peters van de boekhouding. En u ben? Aangenaan, ik ben mevr Segers

10 Berichten sturen om taken uit te voeren
Graag, lunch voor 3 personen

11 Een bericht activeert de overeenkomstige methode
Object Remmen Gedrag Rijden Remmen Toeteren

12 Een Object Georiënteerd programma
Een programma is een opeenvolging opdrachten/instructies Een OO programma is een opeenvolging van berichten

13 Klassen Klasse Auto Toestand Kleur Merk Nummerplaat Gedrag Rijden Remmen Toeteren Gelijksoortige objecten met hetzelfde gedrag en gelijksoortige attributen worden gedefinieerd door een klasse

14 Instanties van 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 Kleur: rood Merk: VW Nummerplaat: BXR824 Kleur: zwart Merk: Ford Nummerplaat: CVX779

15 Refereren naar objecten
Referenties naar objecten Jan’sAuto MijnAuto Object Toestand Kleur: rood Merk: VW Nummerplaat: BXR824 Gedrag Rijden Remmen Toeteren Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren Opa’sAuto Object Toestand Kleur: zwart Merk: Ford Nummerplaat: CVX779 Gedrag Rijden Remmen Toeteren Laat toe om het object te identificeren: MijnAuto.Toeteren Opa’sAuto.Remmen

16 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

17 Vooraf gedefinieerde klassen en objecten
De meest gebruikelijke klassen en objecten zijn reeds vooraf gedefinieerd in Java. Deze kunnen eenvoudigweg gebruikt worden.

18 Een voorbeeld Via Java willen we “Welkom iedereen” op de monitor van de computer laten verschijnen. Boodschap naar object “System.out” Referentie naar een voor gedefinieerd object van de voorgedefinieerde klasse “PrintStream” System.out .println(“Welkom iedereen”) Refereert naar het scherm

19 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”);

20 Een Java programma Een opeenvolging van statements
System.out.println(“Dit is mijn eerste Java programma”); System.out.println(“maar niet mijn laatste.”);

21 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.”); }

22 Syntax regels Regels die zeggen wat mag en niet mag in een Java programma Vergelijkbaar met de grammatica regels van Nederlands, Engels, ...

23 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

24 Sleutelwoorden Woorden met een speciale vast gelegde betekenis noemt men sleutelwoorden (keyword) Bvb: import, class, public, static, void Tegen-vb: PrintStream

25 Regel: Twee opeenvolgende identifiers of sleutelwoorden zijn gescheiden door minstens één blanko.
classProgramma1 Goed: class Programma1

26 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

27 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

28 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”); }

29 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

30 import java.io.*; /* * Programma1 schrijft mijn naam en op het scherm */ class Programma1 { public static void main(String[] arg) { System.out.println(“Prof. Dr. Olga De Troyer”); // mijn naam System.out.println(“ // mijn }

31 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

32 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.

33 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 Bestand met programma Output Editor

34 Java programma bestanden
Regel: Naam van bestand van een programma is naam-programma.java Bvb: Programma1.java

35 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

36 Vertalen van programma’s
Compiler vertaalt programma naar machinetaal instructies (machine code) Programma Input Machine Code Output Compiler

37 Vertalen van programma’s (2)
Interpreter Voert de programma instructies uit door middel van machinetaal instructies Programma Input Interpreter Output “De programma uitvoer” Vb. Hallo iedereen

38 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 Java Programma bestand

39 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

40 Dus alles samen Java Editor X.java Java Compiler X.class
Het programma compileren Het programma invoeren Java Bestand X.java Java Editor Java Compiler Java bytecode Bestand X.class Het programma uitvoeren Java byte code Interpreter “De programma uitvoer”

41 Voordelen Java byte code is niet machine afhankelijk
Dus compiler niet machine afhankelijk Java byte code interpreters eenvoudiger dan Java interpreters

42 Hoofdstuk 2: Objecten nader bekeken

43 Referenties en objecten
Referentie naar een object Object Object Toestand Kleur: blauw Merk: Opel Nummerplaat: ARJ775 Gedrag Rijden Remmen Toeteren MijnAuto “Het object MijnAuto” is eigenlijk een afkorting van “het object waarnaar MijnAuto refereert”

44 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

45 Formaat van methoden methodenaam(argument-1, argument-2, ...)
println(“Java”) methodenaam argument

46 Methode print Methode print voor de klasse PrintStream
Geen nieuwe lijn na afdrukken van het argument: System.out.print(“Ja”) System.out.print(“va”)

47 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

48 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());

49 Signatuur en prototype
Signatuur van een methode Naam methode en beschrijving van de argumenten vb: klasse PrintStream methode println argumenten: referentie naar String object

50 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

51 Variabelen Een variabele Heeft een naam (identifier)
Bvb x, lijn, mijnVariabele Kan een waarde hebben Bvb x heeft de waarde 5 Waarde kan wijzigen Grafische voorstelling Naam van de variabele x 5 Inhoud (of waarde) van de variabele

52 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

53 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.

54 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

55 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());

56 Declaraties Een declaratie is een statement dat een variabele introduceert in het programma Formaat: type naam-variabele; Voorbeelden: String groeten; int x; naam type groeten naam type x

57 Assigment (Toekenning)
Het toekennen van een waarde aan een variabele Formaat: naam-variabele = waarde ; Vb-en: x = 5 ; x 5 groeten = “Hallo” ; groeten “Hallo”

58 Assigment (2) Een variabele kan pas worden gebruikt nadat ze werd gedeclareerd Vb1: int x; x = 5 ; System.out.println( x ); x 5 Vb2: String groeten; groeten = “Hallo”; System.out.println( groeten ); groeten “Hallo”

59 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 ;

60 Assignment met waarde toekenning
Het toekennen van een waarde aan een variabele tijdens de deklaratie Formaat: type identifier = waarde ; Vb: String groeten = “Hallo”; int x = 5 ;

61 Meer over variabelen Meerdere variabelen in één declaratie Conventie:
type naam-variabele1, naam-variabele2, … ; Vb: String groeten, naam, lijn ; int i, j, k ; Conventie: Variabele namen starten met kleine letter

62 Meer over variabelen (2)
Na declaratie en voor de eerste toekenning is de waarde van een variabele onbepaald int x ; x x = 10; 10 5 x = 5; Een variabele kan op één moment maar één waarde bevatten.

63 Meer over variabelen (3)
Een referentie variabele kan op één moment naar slechts één object refereren. Referentie naar “herfst” is weg! String t ; t String t ; t = “herfst” ; t = “winter” ; t “herfst” “winter” t “herfst” String t ; t = “herfst” ;

64 Waarde van een variabele wijzigen
Waarde wijzigen gebaseerd op de huidige waarde int i ; i = 3; i 3 12 Resultaat (12) toekennen aan i Resultaat berekenen : 3 * 4 = 12 i = i * 4; Waarde opvragen : 3

65 Null Het sleutelwoord null kan men gebruiken om aan te geven dat een referentie variabele nergens naar refereert t String t ; null t = null ;

66 Meer over variabelen (3)
Verschillende variabelen kunnen dezelfde waarde bevatten. int i, j ; i = 5 ; i j 5 5 j = i ; j wordt hier gebruikt om de variabele j een waarde te geven i wordt hier gebruikt om de waarde van de variabele i op te vragen

67 Meer over variabelen (4)
Verschillende referentie variabelen kunnen naar hetzelfde object verwijzen. t “herfst” String s, t ; t = “herfst” ; s s = t ; s wordt hier gebruikt om de variabele s een waarde te geven t wordt hier gebruikt om de waarde van de variabele t op te vragen

68 Meer over variabelen (4)
(Referentie) variabelen zijn onafhankelijk int i, j; i = 5 ; j = i ; i = 10 ; int i, j; i = 5 ; int i, j; i = 5 ; j = i ; i j 5 5 10 String s, t ; t = “herfst” ; s = t ; t = “winter” ; t “herfst” s “winter” s = t ; String s, t ; t = “herfst” ; t “herfst” s

69 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 ); }

70 String Methoden - voorbeelden

71 String Methoden (2) Positie van karakters in een String begint bij 0!
h a m b u r g e r Eerste karakter Positie 0 Vierde karakter Positie 3

72 String Methoden String s, t, u ; s = “ham”; t = “burger”;
u = s.concat( t ); “hamburger”

73 String Methoden (2) String s, t, u ; s = “hamburger”;
t s “hamburger” u t = s.substring(3) “burger” Positie van begin van rest string “burg” u = s.substring(3 , 7) Laatste positie niet in substring

74 Overloading Twee verschillende methoden? Dit noemt men “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”

75 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)

76 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) n o o i t Dus middelste positie is lengte gedeeld door 2: woord.length() / 2

77 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 )

78 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); }

79 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 ;

80 Hoe initialen vinden? Hoe samenvoegen ? Eerste karakter van elke naam
voornaam.substring(0, 1); J a n achternaam.substring(0, 1); P e e t e r s Nog nodig, dus referentie bijhouden door middel van variabelen String eersteInit, tweedeInit; eersteInit = voornaam.substring(0, 1); tweedeInit = achternaam.substring(0, 1); tweedeInit eersteInit “P” “J” Hoe samenvoegen ? Via concat methode initialen = eersteInit.concat(tweedeInit); initialen “JP”

81 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); }

82 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 eersteInit.concat(tweedeInit) initialen = .concat(derdeInit); is een object Dus we kunnen er een boodschap naar sturen

83 Compositie Nog anders: Of initialen = tweedeInit.concat(derdeInit);
initialen = eersteInit.concat(initialen); “GP” “JGP” Of tweedeInit.concat(derdeInit) initialen = eersteInit.concat( ) is een object Dus we kunnen het gebruiken als argument van een boodschap

84 Lege string String zonder karakters Lengte van een lege string is 0
“” Lengte van een lege string is 0 Is verschillend van null

85 Zelf objecten maken Een object is een instantie van een klasse
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

86 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”)

87 Zelf objecten maken (3) Referentie naar nieuw object nodig!
Auto mijnAuto ; mijnAuto mijnAuto = new Auto() ;


Download ppt "Inleiding Informatica"

Verwante presentaties


Ads door Google