Modelleren en Programmeren

Vergelijkbare documenten
Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Modelleren en Programmeren

Modelleren en Programmeren

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

Modelleren en Programmeren

Zelftest Programmeren in Java

Ingebouwde klassen & methodes

Kleine cursus PHP5. Auteur: Raymond Moesker

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

Game of Life in Java

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

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

IMP Uitwerking week 13

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Overerving & Polymorfisme

Programmeren in Java les 3

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis

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

Deel 1 : Gesloten Boek

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

Tentamen Imperatief Programmeren

VI. Klassen en objecten

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


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

Programmeren in Java 3

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

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

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.


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

Java. Basissyllabus. Egon Pas

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

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

Introductie in C++ Jan van Rijn. September 2013

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

Programmeren in C# Overerving

Programmeren in Java 3

Voorbeeld: Simulatie van bewegende deeltjes

Abstracte klassen & Interfaces

NAAM: Programmeren 1 Examen 21/01/2011

Objectgeoriënteerd Programmeren: WPO 2a

Programmeren (1) Examen NAAM:

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Objectgericht programmeren 1.

Vakgroep CW KAHO Sint-Lieven

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Objectgericht programmeren 1.

Modelleren en Programmeren

Wat is een grafische gebruikersinterface (GUI)?

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

NAAM: Programmeren 1 Examen 29/08/2012

Programmeren in Java 3

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

Objectgeoriënteerd programmeren in Java 1

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

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

Modulewijzer Tirdat01

DOMjudge teamhandleiding

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

Hoofdstuk 0. Van Python tot Java.

C# 6 Door Alex en Chris van Beek

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

L E S B O E K J E. J. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch Wt /

Een stoomcursus door Edgar de Graaf, november 2006

Programmeren in C# Interfaces. Hoofdstuk 23

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Uitwerking Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur

Programmeren in C# Exceptions. Hoofdstuk 17

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Datastructuren Werkcollege Intro

Ontwerp van Informatiesystemen

Door ir. Christine Daniels

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Scala. Korte introductie. Sylvia Stuurman

Lessen Java: Reeks pag. 1

Transcriptie:

Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken

Overerving (inheritance)

2-dimensionaal figuur public class TwoDShape { public double width; public double height; public void showdim() { System.out.println("Width and height are " + width + " and " + height);

2-dimensionaal figuur public class Triangle extends TwoDShape { public String style; public double area() { return width * height / 2; public void showstyle() { System.out.println("Triangle is " + style);

Overerving Een klasse kan een andere klasse uitbreiden En erft dan als het ware alle variabelen en methoden Een klasse kan van maximaal 1 klasse erven In Java doen we dit met extends keyword

Gebruik Triangle public class TriangleTest { public static void main(string[] args) { Triangle t = new Triangle(); t.width = 4.0; t.height = 4.0; t.style = "filled"; t.showstyle(); t.showdim();

Constructors

Constructors public class TwoDShape { public double width; public double height; public TwoDShape(int w, int h) { width = w; height = h; public void showdim() { System.out.println("Width and height are " + width + " and " + height);

Constructors public class Triangle extends TwoDShape { public String style; public double area() { return width * height / 2; public void showstyle() { System.out.println("Triangle is " + style);

Constructors public class Triangle extends TwoDShape { public String style; public Triangle(int w, int h, String s) { super(w, h); style = s; public double area() { return width * height / 2; public void showstyle() { System.out.println("Triangle is " + style);

Constructors Met super kan constructor van ouder-klasse aangeroepen worden

Constructors Met super kan constructor van ouder-klasse aangeroepen worden Dit is verplicht als die klasse geen constructor zonder parameters heeft

Constructors Met super kan constructor van ouder-klasse aangeroepen worden Dit is verplicht als die klasse geen constructor zonder parameters heeft Want: een object kan alleen gemaakt worden met constructor

Constructors Met super kan constructor van ouder-klasse aangeroepen worden Dit is verplicht als die klasse geen constructor zonder parameters heeft Want: een object kan alleen gemaakt worden met constructor super kan ook gebruikt worden om expliciet te maken welke constructor gebruikt moet worden

Overriding

Overriding public class A { public int i, j; public A(int a, int b) { i = a; j = b; // display i and j public void show() { System.out.println("i and j: " + i + " " + j);

Overriding public class B extends A { public int k; public B(int a, int b, int c) { super(a, b); k = c; // display k - this overrides show() in A public void show() { System.out.println("k: " + k);

Overriding public class B extends A { public int k; public B(int a, int b, int c) { super(a, b); k = c; // display k - this overrides show() in A public void show() { super.show(); // this calls A s show() System.out.println("k: " + k);

Overriding Een klasse mag geërfde methoden overschrijven (override) Bij aanroep wordt methode van sub-klasse uitgevoerd Met super kan methode van super-klasse aangeroepen worden

Overriding Een klasse mag geërfde methoden overschrijven (override) Bij aanroep wordt methode van sub-klasse uitgevoerd Met super kan methode van super-klasse aangeroepen worden final voor een methodedefinitie zorgt ervoor dat de methode niet overschreven kan worden

Inheritance demo

Exceptions

Wat gaat hier mis? public class Exceptions { public static void main(string[] args) { int[] getallen = {5, 7, 2, 3; for(int i = 0; i <= getallen.length; i++) { System.out.println(getallen[i]);

Wat gaat hier mis? public class Exceptions { public static void main(string[] args) { int[] getallen = {5, 7, 2, 3; for(int i = 0; i <= getallen.length; i++) { System.out.println(getallen[i]); 5 7 2 3 Exception in thread "main" java.lang.arrayindexoutofboundsexception: 4 at Exceptions.main(Exceptions.java:5)

Exceptions Als er iets mis noemen we dat Exception

Exceptions Als er iets mis noemen we dat Exception Voorbeeld:

Exceptions Als er iets mis noemen we dat Exception Voorbeeld: Deling door 0

Exceptions Als er iets mis noemen we dat Exception Voorbeeld: Deling door 0 Verkeerde index gebruikt

Exceptions Als er iets mis noemen we dat Exception Voorbeeld: Deling door 0 Verkeerde index gebruikt Wanneer het programma teveel geheugen gebruikt

Exceptions Als er iets mis noemen we dat Exception Voorbeeld: Deling door 0 Verkeerde index gebruikt Wanneer het programma teveel geheugen gebruikt etc.

Exceptions Als er iets mis noemen we dat Exception Voorbeeld: Deling door 0 Verkeerde index gebruikt Wanneer het programma teveel geheugen gebruikt etc. We kunnen exceptions afvangen met try... catch

Fouten afvangen public class Exceptions { public static void main(string[] args) { System.out.println("We rekenen nu 5/0 uit"); System.out.println(deling(5, 0)); System.out.println("Klaar!"); public static int deling(int a, int b) { return a / b;

Fouten afvangen public class Exceptions { public static void main(string[] args) { System.out.println("We rekenen nu 5/0 uit"); System.out.println(deling(5, 0)); System.out.println("Klaar!"); public static int deling(int a, int b) { return a / b; We rekenen nu 5/0 uit Exception in thread "main" java.lang.arithmeticexception: / by zero at Exceptions.deling(Exceptions.java:9) at Exceptions.main(Exceptions.java:4)

Fouten afvangen public class Exceptions { public static void main(string[] args) { System.out.println("We rekenen nu 5/0 uit"); System.out.println(deling(5, 0)); System.out.println("Klaar!"); public static int deling(int a, int b) { try { return a / b; catch(exception e) { System.out.println("Er is iets mis gegaan!"); return 0; // we kiezen hier een willekeurige waarde

Try - catch try { // code om uit te voeren hier catch(exception e) { // dit wordt uitgevoerd als iets mis gaat

Try - catch try { // code om uit te voeren hier catch(exception e) { // dit wordt uitgevoerd als iets mis gaat Code in try-blok worden uitgevoerd zoals normaal

Try - catch try { // code om uit te voeren hier catch(exception e) { // dit wordt uitgevoerd als iets mis gaat Code in try-blok worden uitgevoerd zoals normaal Zodra ergens in die code fout optreed wordt code in catch-blok uitgevoerd

Try - catch try { // code om uit te voeren hier catch(exception e) { // dit wordt uitgevoerd als iets mis gaat Code in try-blok worden uitgevoerd zoals normaal Zodra ergens in die code fout optreed wordt code in catch-blok uitgevoerd Zo niet, dan gaat executie verder na het hele blok

Type exceptions Exceptions hebben een type

Type exceptions Exceptions hebben een type Exception is een klasse

Type exceptions Exceptions hebben een type Exception is een klasse ArithmeticException is een sub-klasse daarvan

Type exceptions Exceptions hebben een type Exception is een klasse ArithmeticException is een sub-klasse daarvan ArrayIndexOutOfBoundsException ook

Type exceptions Exceptions hebben een type Exception is een klasse ArithmeticException is een sub-klasse daarvan ArrayIndexOutOfBoundsException ook Met catch kunnen we ook specifieke fouten afvangen

Meerdere exceptions public class Exceptions { public static void main(string[] args) { System.out.println("We rekenen nu 5/0 uit"); try { System.out.println(deling(5, 0)); catch(arrayindexoutofboundsexception e) { System.out.println("Array index onjuist"); catch(arithmeticexception e) { System.out.println("Berekeningsfout"); System.out.println("Klaar!"); public static int deling(int a, int b) { return a / b;

Zelf exceptions veroorzaken

Zelf exceptions veroorzaken Met throw kun je zelf exceptions maken

Zelf exceptions veroorzaken Met throw kun je zelf exceptions maken Argument is een object

Zelf exceptions veroorzaken Met throw kun je zelf exceptions maken Argument is een object Bijvoorbeeld: throw new Exception("Iets ging mis");

Zelf exceptions veroorzaken Met throw kun je zelf exceptions maken Argument is een object Bijvoorbeeld: throw new Exception("Iets ging mis"); Je kunt ook zelf exception-klasses maken

Zelf exceptions veroorzaken public class ThrowDemo { public static void main(string[] args) { try { System.out.println("Before throw."); throw new ArithmeticException(); catch (ArithmeticException exc) { // catch the exception System.out.println("Exception caught."); System.out.println("After try/catch block.");