Lessen Java: Reeks pag. 1

Vergelijkbare documenten
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Overerving & Polymorfisme

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Objectgericht programmeren 1.

Vakgroep CW KAHO Sint-Lieven

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

Ingebouwde klassen & methodes

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Objectgeoriënteerd programmeren in Java 1

Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

SPOJ oplossingen Gilles Callebaut 7 augustus 2015


Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Imperatief Programmeren

Modelleren en Programmeren

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Modelleren en Programmeren

Abstracte klassen & Interfaces

Zelftest Programmeren in Java

Objectgericht programmeren 1.

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Prof.: M. van Dooren Academiejaar Auteur: Dieter Debast

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Java. Basissyllabus. Egon Pas

In BlueJ. Doe onderstaande met muis/menu s:

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

Scala. Korte introductie. Sylvia Stuurman

Programmeermethoden NA. Week 5: Functies (vervolg)

Hoofdstuk 0. Van Python tot Java.

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

IMP Uitwerking week 13

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Voorbeeld: Simulatie van bewegende deeltjes

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

Modelleren en Programmeren

Programmeren in Java les 3

Game of Life in Java

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

Programmeermethoden NA. Week 5: Functies (vervolg)

Modelleren en Programmeren

Programmeren (1) Examen NAAM:

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Ontwerp van Informatiesystemen

VI. Klassen en objecten

Een fragment wordt afgeleid van de basis klasse "Fragment".

Programmeren in C# Samenvatting van C#

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Een inleiding in de Unified Modeling Language 67

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica 2e semester

Programmeren in Java 3

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Tentamen in2705 Software Engineering

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

Modelleren en Programmeren

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

Inhoud. Eindtoets. Introductie 2. Opgaven 3. Bijlage bij opgaven 9. Terugkoppeling 12

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

NAAM: Programmeren 1 Examen 29/08/2012

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

Elementary Data Structures 3

Labo 1 Programmeren II

Java Programma structuur

Objectgericht Programmeren. (in Python)

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Oefeningen Java Oplossingen

NAAM: Programmeren 1 Examen 21/01/2011

Transcriptie:

Lessen Java: Reeks 2 1-3-2016 pag. 1

Primitieve types type grootte waardes byte 8 bits 128, 127 short 16 bits 32768, 32767 int 32 bits 2 31, 2 31 1 long 64 bits 2 63, 2 63 1 type grootte waardes float 32 bits 7 bed. cijfers double 64 bits 16 bed. cijfers boolean 1 bit * {false, true} char 16 bit a, R, 7,?, Klassen zijn opgebouwd uit andere klassen en/of primitieve types String is geen primitief type: Bestaat intern uit een array van char Primitieve types zijn gekleurd + boldface in Eclipse, en bevatten geen methodes. 1-3-2016 pag. 2

Wat is een klasse (class)? Alles wat geen primitief type (int, double, boolean, enz.) is, is een klasse. Klassen bevatten attributen en methodes: Attributen zijn de onderdelen van de klasse. Attributen kunnen zelf klassen zijn of primitieve types. Methodes zijn functies die gerelateerd zijn aan de Klasse. 1-3-2016 pag. 3

Wat is een klasse? (bv. bevolkingregister) Class Persoon String voornaam String achternaam Geslacht geslacht Datum geboortedatum Adres woonplaats Adres werkplaats ATTRIBUTEN Class Adres String Land String Plaats int huisnummer String Straat ATTRIBUTEN void print_gegevens(int paginas) int bereken_leeftijd() void print_adres() METHODES METHODES 1-3-2016 pag. 4

Aanmaken van een object Het aanmaken van een nieuw object doe je doormiddel van het keyword new en de constructor van die klasse: Klasse obj = new Klasse(a,b, ); Type naam Constructor (met type) Invoerparameters Klassen kunnen meerdere constructors hebben Constructor mag van een subtype zijn. Voorbeeld: Breuk x = new Breuk(1,4); Persoon jef = new Student( Jef, 1995, Sociologie ); 1-3-2016 pag. 5

Random (vraag 1) De klasse Random laat je willekeurige getallen genereren. import java.util.random; Random rand = new Random(); Aantal nuttige methodes: nextboolean() Geeft een true of false terug met 50/50 kansen nextint(int n) Geeft een int terug tussen 0 en n 1 (uniform verdeeld) nextdouble() Geeft een double terug uit 0,1 (uniform verdeeld) nextgaussian() Geeft een double terug uit een Gaussiaanse verdeling met μ = 0 en σ = 1 1-3-2016 pag. 6

Arraylist (vraag 1) import java.util.list; import java.util.arraylist; ArrayList<int> list = new ArrayList<int>(); ArrayList<Integer> list = new ArrayList<Integer>(); Kies het type voor T ArrayList<T> void add(t) T get(int) int size() T remove(int) Nuttige methodes: (zie ook http://docs.oracle.com/javase/7/docs/api/java/util/arraylist.html en http://parallel.vub.ac.be/education/java/minijava/classes/arraylist.html) 1-3-2016 pag. 7

Juliafractaal (vraag 2) Een fractaal is een meetkundige figuur die zelfgelijkend is. (een deel van) de Julia sets worden beschreven door: Convergeert de reeks lim i z i (x)? z n+1 x = z n 2 x + c & z 0 x = x Constante c, bepaal convergentie x C Moeilijk te bepalen. Praktische benadering: kies een M R, reken uit na hoeveel (k) stappen de reeks lijkt te divergeren z k (x) > M 1-3-2016 pag. 8

Juliafractaal (vraag 2) Twee meegegeven klassen (zie parallel-website): 1. ComplexNumber: stelt een complex getal voor 2. SimpleImage: laat toe eenvoudige afbeeldingen weer te geven. Bestudeer de meegegeven klassen, gebruik deze om in een nieuwe klasse JuliaMain waar de main-methode staat. Kies als constanten: c = 0.70176 0.3842i M = 5 Test iteraties uit voor k tot maximaal 255. 1-3-2016 pag. 9

Encapsulatie: public en private public class A { public int x; Public public class A { private int x; Private D D B A B A C C 1-3-2016 pag. 10

Klasse Breuk (vraag 3) public class Breuk { private int teller, noemer; public Breuk(int t, int n) { teller = t; noemer = n; } public void optellen(breuk other) { teller = this.teller*other.noemer + other.teller*this.noemer; noemer = this.noemer*other.noemer; } } public String tostring() { } return teller+"/"+noemer; 1-3-2016 pag. 11

Klasse Test (bevat de main-methode) public class Test { public static void main(string[] args) { Breuk a = new Breuk(1,2); Breuk b = new Breuk(1,3); } System.out.print(a + " + " + b + " = "); a.optellen(b); System.out.println(a); Output: 1/2 + 1/3 = 5/6 1-3-2016 pag. 12

Greatest Common Denominator (Grootste gemeenschappelijke deler) Algoritme van Euclides: gcd a, b = a > b a = b a < b gcd(a b, b) a gcd(a, b a) Zorg dat de normalize() methode telkens wordt opgeroepen wanneer de Breuk wordt aangepast. 1-3-2016 pag. 13

SocialNet Gebruiker naam voornaam geboortejaar relatiestatus Verzoeken vrienden SocialNet main() Group titel beschrijving tags likers 1-3-2016 pag. 14

Klasse - speciaal geval: ENUM public enum Weekdag { } Maandag, Dinsdag, Woensdag, Donderdag, Vrijdag, Zaterdag, Zondag; public enum Kleur { } Rood, Geel, Groen, Blauw; Kleur k = Kleur.Rood; Aanmaken: New Enum 1-3-2016 pag. 15

Set Set<E>: een collectie van elementen die geen duplicaten bevat (gelijkaardig aan de mathematische definitie van een verzameling). Voorbeelden: Vrienden: Set<Persoon> Media: Set<Film> Set<T>= new HashSet<T> Nuttige methodes: add(t) A A a remove(t) A A a int size() boolean contains(t) 1-3-2016 pag. 17

Strings vergelijken Strings vergelijken met equals(), niet met ==! String x = "abcdef"; String y = "abcdef"; String z = "abc"; X a b c d e f if (voorwaarde) { z += "def" } Y Z a b c d e f x == y; // true x == z; // false! 1-3-2016 pag. 18