http://www.liacs.nl/home/kosters/java/



Vergelijkbare documenten

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

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

Zo vind u hierin de volgende documentatie over de klasse Applet: +----java.awt.panel java.applet.applet

IMP Uitwerking week 13

Modelleren en Programmeren

Een stoomcursus door Edgar de Graaf, november 2006

X. Grafische elementen

Programmeren in Java les 3

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

Modelleren en Programmeren

Vakgroep CW KAHO Sint-Lieven

Game of Life in Java

Voor het bepalen van de getalswaarde van een string is een standaardmethode beschikbaar: n = Integer.parseInt(s);

BEGINNER JAVA Inhoudsopgave

Ingebouwde klassen & methodes

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

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

eerste voorbeelden in Java

Variabelen en statements in ActionScript

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

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

Java Les 3 Theorie Herhaal structuren

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

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

Modelleren en Programmeren

1 Objectgeoriënteerd programmeren met Java

Hoofdstuk 5: Functies voor getallen en teksten

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Wat is een grafische gebruikersinterface (GUI)?

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

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

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

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

Overerving & Polymorfisme

Modelleren en Programmeren

Objectgericht programmeren 1.

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object


Syntax- (compile), runtime- en logische fouten Binaire operatoren

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Javascript oefenblad 1

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

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

Programmeren in C# Samenvatting van C#

Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is

Modelleren en Programmeren

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

Modelleren en Programmeren

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Oefeningen Java Oplossingen

Lessen Java: Reeks pag. 1

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

voorwaardelijke en selectie opdrachten

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

Programmeermethoden. Talen: Java, Qt, Python,... Walter Kosters. week 14: december

Programmeren in Java. De Java-GUI

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

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

Informatica. Leren programmeren met JAVA en NetBeans. Over JAVA en Rapid Application Development met NetBeans. Bert Van den Abbeele

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Zelftest Programmeren in Java

Modelleren en Programmeren

Scala. Korte introductie. Sylvia Stuurman

Inleiding programmeren

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Hoofdstuk 6: Zelf functies maken

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

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Modelleren en Programmeren

Programmeren met Arduino-software

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( )

Opdracht 7a. Applicatiebouw 2014/2015

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )

Datastructuren en algoritmen

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973

Objectgeoriënteerd programmeren in Java 1

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

Modelleren en Programmeren

17 Operaties op bits Bitoperatoren en bitexpressies

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

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

Transcriptie:

sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/ 1

Java hello world Edit een file Hello.java, met: // een hello world programma public class Hello { public static void main (String[ ] args) { System.out.println ("Hallo wereld!"); } // main } // Hello Compileren met javac Hello.java Runnen met java Hello Het kan ook met een grafische omgeving. Het programma is een voorbeeld van een standalone tekstgerichte applicatie. Daarnaast bestaan ook nog applets, die in een webpagina (zeg leuk.html) draaien, en die je kunt bekijken met behulp van appletviewer leuk.html 2

Java applet De file leuk.html bevat: <html> <head><title>een WWW-bladzijde</title></head> <body> <applet code="lijn.class" width=100 height=100> </applet> </body> </html> De file Lijn.java bevat: import java.awt.*; import java.applet.applet; public class Lijn extends Applet { public void paint (Graphics g) { g.drawline(0,0,50,70); // teken lijn } // paint } // Lijn 3

Java variabelen Informatie zit in variabelen. Elke variabele is van een bepaald type (net zoals wij allen mensen zijn). We hebben standaardtypes: int (integer, geheel getal), float of double ( reëel getal ), boolean (true of false). En ook nog: String (zoals "Hallo wereld!", zie later) en arrays (je gebruikt bijvoorbeeld args[0] en args[2] van het array args, zie ook later). 4

Java operatoren Met behulp van operatoren als + en * kun je op de gebruikelijke manier (waarden van) variabelen met elkaar combineren. Tip: gebruik overvloedig haakjes! Enkele voorbeelden, met integers i en j, dus met int i; en int j;: i = 3 * ( 17 + 8 ); (i wordt 75) i = i + 13; (i wordt met 13 opgehoogd) j = i % 7; (j wordt rest bij deling van i door 7) j++; (hoog j met 1 op) boolean oud = ( i > 65 ); (ja of nee) 5

Java operatoren, vervolg Nog meer voorbeelden, met int i; en double d;: d = 1.2345 / 6.789; (d wordt 0.18183...) d = 5 / 2; (d wordt 2!!!) d = 5 / 2.0; (d wordt 2.5) d = (double)5 / 2; (casting; d wordt 2.5) Let op: g.drawstring ("iets" + 1 + 2,50,50); levert iets12 op het scherm op (de strings worden geconcateneerd ), en niet iets3; gebruik eventueel haakjes of variabelen om gewone optelling af te dwingen. 6

Java args Wat doet die parameter args uit het hello world programma? Daar kun je command line parameters mee opvangen: public class Plus2 { public static void main (String[ ] args) { int i = Integer.parseInt (args[1]); // i is een locale variabele System.out.println (i+2); } // main } // Plus2 Bij aanroep java Plus2 7777 100 krijg je 102 (en niet 1002 overigens). Let ook op het omzetten van een string naar een integer. Zo kun je invoer van de gebruiker vragen. Dat kan ook anders: of via gebufferde input, of via windows met knoppen en schuiven. 7

Java events, compleet voorbeeld import java.awt.*; import java.applet.applet; import java.awt.event.*; public class Iets extends Applet implements AdjustmentListener { private Scrollbar trekker; private int waarde = 0; public void init ( ) { trekker = new Scrollbar ( Scrollbar.HORIZONTAL,0,1,0,100); add (trekker); trekker.addadjustmentlistener (this); } // init public void paint (Graphics g) { g.drawstring ("Nu is het " + waarde,100,100); } // paint public void adjustmentvaluechanged ( AdjustmentEvent e) { waarde = trekker.getvalue ( ); repaint ( ); } // adjustmentvaluechanged } // Iets 8

Java events, details De eerste methode public void init ( ) { trekker = new Scrollbar ( Scrollbar.HORIZONTAL,0,1,0,100); add (trekker); trekker.addadjustmentlistener (this); } // init maakt een nieuwe scrollbar, voegt die aan het window toe, en vraagt ons (this) erop te attenderen als er wat mee gebeurt. De tweede methode public void adjustmentvaluechanged ( AdjustmentEvent e) { waarde = trekker.getvalue ( ); repaint ( ); } // adjustmentvaluechanged vangt het desbetreffende event op, en handelt het af. 9

Java labels En nu met twee scrollbars met labels: private Scrollbar trekker1, trekker2; private int waarde1 = 0, waarde2 = 0; public void init ( ) { Label titel1, titel2; titel1 = new Label ("Een: "); add (titel1); trekker1 = new Scrollbar ( Scrollbar.HORIZONTAL,0,1,0,100); add (trekker1); trekker1.addadjustmentlistener (this);... en nu voor titel2 en trekker2... } // init public void adjustmentvaluechanged ( AdjustmentEvent e) { waarde1 = trekker1.getvalue ( ); waarde2 = trekker2.getvalue ( ); repaint ( ); } // adjustmentvaluechanged 10

Java if We voegen aan de paint-methode van onze scrollbar een if-statement toe: public void paint (Graphics g) { if ( waarde >= 21 ) g.drawstring ("Volwassen!",50,50); else { g.drawstring ("Nog jong!",50,50); g.drawstring ("Wanhoop niet...",50,70); } // else g.drawstring ("Dat was het",50,90); } // paint Een else-gedeelte is niet verplicht. Gebruik accolades (een { en een }) om statements bij elkaar te laten horen. Let op de layout. 11

Java if, details Er zijn legio operatoren beschikbaar, zodat je op allerlei manieren condities kunt combineren. Enkele voorbeelden: if ( 21 <= leeftijd && leeftijd < 42 )... (met de EN-operator &&) if ( lengte == 100 geslaagd )... (met de OF-operator ; hier is geslaagd een boolean; let ook de de test op gelijkheid: ==, een dubbel is-gelijk-teken; ongelijk is!=) Let ook op de hangende else : if ( leeftijd > 6 ) if ( leeftijd < 16) g.drawstring ("Kinderkorting!",50,50); else // hoort bij "laatste" if!!! g.drawstring ("Volle prijs!",50,50); 12

Java switch Stel je hebt een langgerekte if else if else if : if ( dag == 1 ) g.drawstring ("zondag",5,5); else if (dag == 2 ) g.drawstring ("maandag",5,5);... else g.drawstring ("foutje",5,5); break; Soms is dan een switch-statement duidelijker: switch (dag) { case 1: g.drawstring ("zondag",5,5); break; case 2: g.drawstring ("maandag",5,5); break;... case 7: g.drawstring ("zaterdag",5,5); break; default: g.drawstring ("foutje",5,5); break; } // case 13

Java knoppen import java.awt.*; import java.applet.*; import java.awt.event.*; public class Knopteller extends Applet implements ActionListener { private Button knop; private int teller = 0; public void init ( ) { knop = new Button ("Druk hier"); add (knop); knop.addactionlistener (this); } // init public void paint (Graphics g) { g.drawstring (teller + " keer",100,100); } // paint public void actionperformed ( ActionEvent event) { // soms: if ( event.getsource ( ) == knop ) teller++; repaint ( ); } // actionperformed } // KnopTeller 14

Java random getallen De functieaanroep Math.random ( ) levert een pseudo-random (schijnbaar willekeurig) getal tussen 0.0 en 1.0 op (kleiner dan 1.0). Hoe kun je hiermee een zeskantige dobbelsteen nadoen? int worp; worp = (int) ( 6 * Math.random ( ) ) + 1; 15

Java tekstvelden Een tekstveld lijkt op een knop: private TextField leeftijdveld; private int leeftijd = 0; public void init ( ) { leeftijdveld = new TextField (10); add (leeftijdveld); leeftijdveld.addactionlistener (this); } // init public void paint (Graphics g) { g.drawstring (leeftijd + " jaar",30,70); } // paint public void actionperformed ( ActionEvent event) { leeftijd = Integer.parseInt ( leeftijdveld.gettext ( )); repaint ( ); } // actionperformed 16