Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

4-9-2015

H1 Kennismaking met Java en de


ontwikkelomgevingen

Hoofdstuk 1 : Kennismaking met Java


en de ontwikkelomgevingen
Ontstaansgeschiedenis van Java
Applicaties
Java platform
Inleiding tot de begrippen : klasse, object,
attributen, methoden, data abstractie, inkapseling,
overerving en polymorfisme.

H1 Kennismaking met Java 2

1
4-9-2015

Hoofdstuk 1 : Kennismaking met Java


en de ontwikkelomgevingen
1. Ontstaansgeschiedenis van Java
2. Applicaties
3. Ontwerpdoelen
4. Wat heb je nodig?
5. Basiselementen van Java
6. Demo in BlueJ
7. On the web
8. Oefening

H1 Kennismaking met Java 3

1. Ontstaansgeschiedenis Java (1)


Java:ontworpen in 1990
door Sun Microsystems
voor de programmering van elektronische apparatuur.

Voor 1995 had bijna niemand ervan gehoord, vermits


twee overeenkomsten met bedrijven op het laatste
moment niet doorgingen.

In 1993 (browser MOSAIC->www geboren) herschreven


de ontwerpers de compiler (C->Java) en bouwden ze
een op Java gebaseerde browser, Webrunner, om Java
te kunnen positioneren als een taal voor het internet.

H1 Kennismaking met Java 4

2
4-9-2015

1. Ontstaansgeschiedenis Java (2)


Hoe heeft men gerealiseerd dat Java overzetbare programmas kan maken
(Java is platformonafhankelijk) ?
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 speciale chip, de processor.

Probleem : begrijpt enkel zijn eigen specifieke machinecode! -> onleesbaar voor
de mens (0 en 1)

H1 Kennismaking met Java 5

1. Ontstaansgeschiedenis Java (3)


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)

H1 Kennismaking met Java 6

3
4-9-2015

1. Ontstaansgeschiedenis Java (4)


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 zon grote klus is.

JAVA is platformonafhankelijk!

H1 Kennismaking met Java 7

1. Ontstaansgeschiedenis Java (5)

H1 Kennismaking met Java 8

4
4-9-2015

2. Applicaties
2.1 Definitie
2.2 Voorbeeld van een applicatie
2.3 De 5 fasen
2.4 Het Java platform

H1 Kennismaking met Java 9

2.1. Definitie
Applicatie:
een applicatie is een Java-programma, cfr.
programmas 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

H1 Kennismaking met Java 10

5
4-9-2015

2.2 Voorbeeld van een applicatie


import java.lang.*; //mag weggelaten worden, want
//wordt automatisch gemporteerd

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

H1 Kennismaking met Java 11

2.2 Voorbeeld van een applicatie


Uitvoer

H1 Kennismaking met Java 12

6
4-9-2015

2.3 De 5 FASEN
Schematisch:

compiler Java byte-code


Java-programma
Compilatie (Som.class)
(Som.java)

Internet

interpreter Java byte-code


verwerking verificatie (Som.class)
+linking

H1 Kennismaking met Java 13

2.3 De 5 FASEN
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

H1 Kennismaking met Java 14

7
4-9-2015

2.4 Het Java Platform

Som.class

Java API

Java Virtual Machine

Operating system + Hardware

H1 Kennismaking met Java 15

3. Ontwerpdoelen (1)
JAVA
is eenvoudiger dan C++
heeft een automatische garbage collection
is klein
is object georinteerd
is betrouwbaar

H1 Kennismaking met Java 16

8
4-9-2015

3. Ontwerpdoelen (2)
JAVA
is veilig
is architectuurneutraal
is portable
heeft een goede performance
is multithreaded
is generiek (vanaf J2SE 5.0)

H1 Kennismaking met Java 17

4. Wat heb je nodig? (1)


o een editor, bijv. Notepad, Wordpad of Textpad
o een compiler
o een JVM

Compiler + JVM = JAVA DEVELOPMENT KIT (JDK 8.0)

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Sinds 1995 zijn er verschillende versies van JDK verschenen: versie 1.0, versie
1.1, versie 1.2, versie 1.3, versie 1.4, versie 1.5 werd herleid tot versie 5.0
(2004-2005), versie 6.0 (Java SE 6, december 2006), versie 7.0 (2011),
versie 8.0 (2014). Elke versie kan weer subversies hebben.

De versies vanaf versie 1.2 worden ook aangeduid met het Java 2 platform.

H1 Kennismaking met Java 18

9
4-9-2015

4. Wat heb je nodig? (2)


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
gentegreerde ontwikkelomgeving, Integrated
Development Environment of IDE.

Veel gebruikte IDEs: JBuilder, Eclipse, NetBeans,


IntelliJ IDEA, Jdeveloper, .

H1 Kennismaking met Java 19

5. Basiselementen van JAVA


Terminologie
Objecten, abstractie, attributen
Klassen
Instanties van een klasse, constructor
Refereren naar een object, referentievariabele
Methoden
Objectgeorinteerd programma

H1 Kennismaking met Java 20

10
4-9-2015

5. Basiselementen van JAVA


Objecten
zijn weerspiegelingen van "dingen" uit de
werkelijkheid.

Voorbeeld : auto's

H1 Kennismaking met Java 21

5. Basiselementen van JAVA


Objecten
MODEL
ABSTRACTIE

Object
Toestand
Kleur ATTRIBUTEN/
Merk EIGENSCHAPPEN
Type
Nrplaat
Chassisnummer
Gedrag
Rijden METHODEN
Remmen
Toeteren

H1 Kennismaking met Java 22

11
4-9-2015

5. Basiselementen van JAVA


Klasse
Gelijksoortige objecten met hetzelfde gedrag
en gelijksoortige attributen worden
gedefinieerd door een klasse. Een klasse
beschrijft gelijksoortige objecten.

H1 Kennismaking met Java 23

5. Basiselementen van JAVA


Klasse

ABSTRACTIE Klasse Auto

Attributen
Kleur
Merk
Type
Nrplaat
Chassisnummer

Methoden
Rijden
Remmen
Toeteren

H1 Kennismaking met Java 24

12
4-9-2015

5. Basiselementen van JAVA


Instanties van een klasse
Object = concreet

Aanmaken van een nieuwe instantie van een


bepaalde klasse, gebeurt door het aanroepen
van een constructor van die klasse.

H1 Kennismaking met Java 25

5. Basiselementen van JAVA


Klasse Auto
Instanties Toestand
Kleur
Merk
Type
Nrplaat
Chassisnummer
Gedrag
Rijden INSTANTIES
Remmen
Toeteren

Object 1
Toestand
Object 2 Object 3
Toestand Toestand
Kleur : Blauw
Kleur : Rood Kleur : Geel
Merk : Opel
Merk : Ford Merk : Renault
Type : Vectra
Type : Focus Type : Berline
Nrplaat : ARJ775
Nrplaat : CVX779 Nrplaat : BXR824
Chassisnummer :
Chassisnummer : Chassisnummer :
Gedrag
Gedrag Gedrag
...
... ...

H1 Kennismaking met Java 26

13
4-9-2015

5. Basiselementen van JAVA


Refereren naar objecten
(Referentie-)variabelen laten toe om het
object te identificeren.

H1 Kennismaking met Java 27

5. Basiselementen van Java


Referentievariabelen opasAuto jufsAuto

mijnAuto Object 1
Toestand Object 2 Object 3
Kleur : Blauw Toestand Toestand
Merk : Opel Kleur : Rood Kleur : Geel
Type : Vectra Merk : Ford Merk : Renault
Nrplaat : Type : Focus Type : Berline
ARJ775 Nrplaat : Nrplaat :
Chassisnummer CVX779 BXR824
: Chassisnummer Chassisnummer
Gedrag : :
... Gedrag Gedrag
... ...

Het object mijnAuto = het object waarnaar de (referentie) variabele


mijnAuto refereert.
Vb. : mijnAuto.toeter, opasAuto.rem

H1 Kennismaking met Java 28

14
4-9-2015

5. Basiselementen van JAVA


Methoden
Objecten hebben methodes, die we gebruiken
om ermee te communiceren. Een bericht
(message) activeert de overeenkomstige
methode(s).
Sommige methodes veranderen de toestand
van een object, andere kunnen informatie
over een object teruggeven.

H1 Kennismaking met Java 29

5. Basiselementen van JAVA


Methoden

Remmen Object 2
Toestand
Kleur : Rood
Merk : Ford
Type : Focus
Nrplaat :
CVX779
Chassisnummer
:
Gedrag
Rijden
Remmen
Toeteren
...

H1 Kennismaking met Java 30

15
4-9-2015

5. Basiselementen van JAVA


Een object-georinteerd programma

Een programma is een opeenvolging van


opdrachten/instructies.

Een OO-programma is een opeenvolging van


berichten.

H1 Kennismaking met Java 31

6. DEMO BlueJ (zie www.blueJ.org)


project shapes : class Circle, Square, Triangle,
[Canvas]
Relaties
Editor->code bekijken
Creatie object circle_1
Methodes aanroepen (makeVisible(),...)
Parameters (moveHorizontal(...), changeColor(...))
Meerdere instanties : circle_2, circle_3
De toestanden vergelijken (wat zit er in een object?)
Andere instanties maken -> andere toestand+gedrag

H1 Kennismaking met Java 32

16
4-9-2015

6. DEMO BlueJ
project picture : class Picture, Circle, Square,
Triangle, [Canvas]
Relaties
Editor->code bekijken
Creatie object picture_1
Methodes aanroepen (draw(),...)

H1 Kennismaking met Java 33

7. On the Web
http://www.deitel.com/
Deitel & Associates home page

http://www.oracle.com/technetwork/java/javase/overview/index.html
De home page voor het Java 2 Platform, Standard Edition

http://www.oracle.com/technetwork/java/javase/downloads/index.htm
De download page voor de JDK 8.0 en de documentatie

http://docs.oracle.com/javase/8/docs/api/ (online)
http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-
downloads-2133158.html(download)
De API documentatie van versie 8.0

http://www.uml.org/
Meer informatie omtrent UML

H1 Kennismaking met Java 34

17
4-9-2015

8. Oefening : Rekening
Maak een klasse Rekening
Welke attributen zijn noodzakelijk om de toestand
van een rekening weer te geven?
Welke methoden hebben we nodig om met een
rekening te kunnen communiceren?

H1 Kennismaking met Java 35

18

You might also like