Vakgroep CW KAHO Sint-Lieven
Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen
[email protected] en
[email protected]
Wat is Java?
http://www.java.com
Wetenschapsweek 2012
2
Java • Programmeertaal – Objectgeoriënteerd (OO) – Platform onafhankelijk (Windows, Linux, ...) – Grote standaard bibliotheek (API) – Huidige versie: Java SE 7 (1.7.0) Text editor (Eclipse)
Broncode (.java)
Compiler (javac)
Bytecode (.class)
Wetenschapsweek 2012
Interpreter (java)
Programma Resultaat
3
Text editor (Eclipse)
Broncode (.java)
Text Editor - Eclipse
Website: http://www.eclipse.org/ Wetenschapsweek 2012
4
Text editor (Eclipse)
Broncode (.java)
Ons eerste programma: HelloWorld.java Naam van het bestand = naam van de klasse Hoofdmethode: main Commentaar
Inhoud van de methode Tekst uitprinten in console
Inhoud van de klasse
Wetenschapsweek 2012
5
Compileren en uitvoeren Compiler (javac)
Bytecode (.class)
Interpreter (java)
Wetenschapsweek 2012
Programma Resultaat
6
Variabelen • Variabele = plaats in het geheugen • Types: – Gehele getallen: short, int, long – Decimale getallen: float, double – Logisch: boolean (true of false) – Letters: char – Tekst: String
Wetenschapsweek 2012
7
Wetenschapsweek 2012
8
Operatoren • Toekenning: = • Rekenkundig: Operator
betekenis
+
Optellen
-
Aftrekken
*
Vermenigvuldigen
/
Deling
%
Rest bij gehele deling
• Relationeel: Operator
betekenis
==
Gelijk aan
!=
Verschillend van
<
Kleiner dan
>
Groter dan
<=
Kleiner of gelijk
>=
Groter of gelijk
• Logisch:
Volgorde van bewerkingen respecteren of haakjes gebruiken.
Operator
betekenis
&&
and
||
or
!
not
Wetenschapsweek 2012
9
? ? ? Wetenschapsweek 2012
10
Oefening 1 • Auto rijdt met een bepaalde snelheid gedurende een bepaalde tijd. Bereken de afgelegde afstand en druk deze af op het scherm. • Test met volgende waarden: – Snelheid = 20 m/s – Tijd = 2 minuten
Wetenschapsweek 2012
11
Oplossing
Wetenschapsweek 2012
12
Selectie • Als voorwaarde doe A anders doe B. if (voorwaarde) { A; } else { B; }
Wetenschapsweek 2012
13
De iteraties
• while lus • do/while lus • for lus
Wetenschapsweek 2012
14
While lus • Herhalen zolang voorwaarde voldaan while (voorwaarde) { ... }
Wetenschapsweek 2012
15
For lus • Herhalen indien het aantal iteraties gekend. for (initialisatie ; voorwaarde ; incrementatie) { ... }
Wetenschapsweek 2012
16
Oefening iteraties • Bereken de som van de eerste 100 natuurlijke getallen.
Wetenschapsweek 2012
17
Enums • Een vaste set van constanten
Wetenschapsweek 2012
18
Statische methoden • Groeperen van functionaliteit
Wetenschapsweek 2012
19
Statische methoden uit de klasse Math Methode
Betekenis
Math.abs(getal);
Absolute waarde van een getal
Math.cos(hoek);
Bereken de cosinus van een hoek
Math.sqrt(getal);
Bereken de vierkantswortel van een getal
Math.min(getal1, getal2);
Bereken het minimum van 2 getallen
Math.max(getal1, getal2);
Bereken het maximum van 2 getallen
Math.pow(getal, macht);
Bereken de macht van een getal
Math.random();
Genereert een willekeurig getal in het bereik [0,1[
Math.round(getal);
Afronden naar een geheel getal
...
Java Math API: http://docs.oracle.com/javase/7/docs/api/java/lang/Math.htm
Wetenschapsweek 2012
20
Oefening 2 • Bereken de afstand tussen twee punten met coordinaten (x1,y1) en (x2,y2) met behulp van een statische methode en methoden uit de klasse Math.
Wetenschapsweek 2012
21
Wetenschapsweek 2012
22
Objecten • Alles is een object • Objecten zijn instanties van een klasse. • Een klasse is een beschrijving van de eigenschappen en het gedrag van objecten.
Wetenschapsweek 2012
23
Waarom Objecten? • Denken met objecten is een heel natuurlijke manier om “echte” problemen uit het dagdagelijkse leven te modelleren. • De methode schaalt erg goed van triviale problemen naar complexe taken : SCHAALBAARHEID • Bibliotheken ondersteunen de ontwikkeling van applicaties in vele domeinen : HERBRUIKBAARHEID • De continuiteit of stabiliteit bij wijzigingen is robuust: UITBREIDBAARHEID Wetenschapsweek 2012
24
Voorbeeld in JAVA: Boek.java Acces modifiers: public, private, protected
Class keyword
Commentaar Commentaar
Data? -> titel, auteur, uitgever Wetenschapsweek 2012
Type informatie
25
Voorbeeld in JAVA: Boek.java • Hoe een boek object aanmaken?
this keyword wijst naar de klasse
• Merk op:
– naam = naam van de klasse – Er is geen return waarde. – Er kunnen meerdere constructormethoden in 1 klasse gedefinieerd worden met dezelfde naam, maar dan moet er een verschillende parameterset gebruikt worden.
Wetenschapsweek 2012
26
Voorbeeld in JAVA: Boek.class • Gedrag -> methoden definieren
Wetenschapsweek 2012
27
Voorbeeld in JAVA: Boek.java
Wetenschapsweek 2012
28
Oefening Vector • Implementeer een klasse Vector • Objecten van deze klasse bevatten een x- en ycoordinaat. • Implementeer 1 of meerdere constructors • Implementeer methoden voor het optellen van vectoren, de lengte berekenen, het midden van 2 punten voorgesteld door vector, afstand tss 2 punten, … Wetenschapsweek 2012
29
Overerving
Speler
Aanvaller
Verdediger Keeper Wetenschapsweek 2012
30
Overerving in Java
Speler Aanvaller
Wetenschapsweek 2012
31
Oefening hoeken • Implementeer een klasse HoekDomein: deze heeft een beginhoek en een eindhoek. • Representatie van de hoeken: eerst moeten deze hoeken omgezet worden zodat de eerste in domein [0-360[ en de hoek tussen de twee in domein [0-360] (let op het verschil tussen [] en [[) • Methode: Bepalen of een bepaalde hoek binnen het domein ligt Wetenschapsweek 2012
32