JAVA - kloetje.nl

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Informatica, Java Programming
Share Embed Donate


Short Description

Download JAVA - kloetje.nl...

Description

JAVA - edX - Introduction to programming with Java

JAVA REPRESENTATION OF PROGRAMS source code

datgene dat je als java code intypt

machine code is datgene dat over is als de source code gecompileert is naar machine code. Dat gebeurt door een compiler. Er moeten dus meerdere compilers zijn, voor elke source-code-taal een.

JVM

= Java Virtual Machine Code

JRE

= Java runtime Envirement = ( JVM + class libraries )

JDK

= Java Development Kit = (compilatie + source code + JVM + class libraries)

WORA

= Write Once, Run Anywhere

Interpreter

programma's moeten vertaald worden naar machine taal

PROGRAMMAS, PROCESSEN & CONVENTIES program

Een "programma" is de opname van de berekening, het is tekst dat dienst doet als instructies voor de computer. Een programma is een string, een reeks van characters en kan daardoor als data gezien worden (Static view). Het kan ook als invoer dienen voor een ander programma en dan weer de tekst doorgeven als output. Dat doet een compiler. Het is gerelateerd aan applicatie en algoritme.

applicatie

of app, als we spreken van een specifiek programma dat iets aparts doet.

algoritme

als een specifiek strategie gevolgd wordt om een probleem op te lossen. Hetzelfde algoritme kan in meerdere en verschillende programmeertalen gebruikt worden.

compiler

is een programma dat de source code verwerkt en object code als output heeft. Daardoor kan het op de harde schijf opgeslagen worden. Omdat we weten hoe strings in binary vorm opgeslagen kunnen worden kunnen we deze vorm opslaan.

process

is een programma dat uitgevoerd wordt, in een programma lopen een of meerdere processen als het wordt uitgevoerd. Dat noemt men de Dynamic view van een programma, zijn de instructies.

constructor

is eigenlijk een creatie en declaratie in een opdracht. Is een bepaald soort methode om van een klasse een object te maken. Bv: Klassenaam objectnaam = new Klassenaam();

implementati invoeren e initialisatie is het toewijzen van een waarde aan een variabele

Conventies

Klassenamen beginnen altijd met een hoofdletter. Objectnamen, variabelen, attributen en methoden beginnen altijd met een kleine letter In de Constructor naam staat de Klassenaam die ook weer met een hoofdletter begint. Bij lange namen gebruik camelcase en geen underscores. Camelcase is een hoofdletter in de naam gebruiken als er normaal een nieuw woord zou beginnen, bv: voorbeeldVanCamelcase Namen van CONSTANTEN worden weergegeven in hoofdletters. Geen gereserveerde Java woorden gebruiken voor klasses, methoden of variabelen.

NULL

geeft aan dat er wel gedeclareerd is maar nog geen waarde aan een object is toegekend. Achter een methode moet altijd (); staan ook bij een constructor (want dat is ook een methode)

PROGRAMMEREN - BASIS starten met bibliotheek opvragen

import verkiezingen.Stemmachine;

de klasse aanmaken, geeft toegang aan Deze moet er altijd in staan !!

public class Voorbeeld1{

declaratie ve stringvariabele

public static void main(String[] args){ String uitslag;

Pagina 1 van 10

JAVA - edX - Introduction to programming with Java declaratie ve variabele van het type Stemmachine en heeft de naam machine1

Stemmachine machine1;

aanmaken (constrcutor)

machine1 = new Stemmachine();

declareren en aanmaken in één regel (constrcutor)

Stemmachine machine1 = new Stemmachnie();

De methode zetAan() van het object machine oproepen

machine1.zetAan();

De methode stem() aanroepen van object machine en gelijk vullen met een string

machine1.stem("Wouter Bos"); uitslag = machine.geefUitslagPerPartij();

De inhoud van de variabele uitslag wordt als waarde geprint op een nieuwe regel. System.out > print naar een message box.

System.out.println(uitslag);

sluiten main sluiten class

} }

declareren

aangeven welk type variabele je gaat gebruiken en welke naam deze hebben.

maken

Het aanmaken van nieuwe variabelen met new.

declareren én maken

in 1 regel declareren en aanmaken van een variabele.

initialiseren

het toewijzen van een bepaalde waarden aan je variabelen.

methode aanroep

object.methodenaam(parameterlijst); Achter een methode aanroep moet altijd () gebruikt worden !!!!

methode aanroep is als volgt:

bv: public void stem(String naam) 1. public > eerst hoe de toegang is public of pricate 2. void > geeft aan wat de terugkeerwaarde is, bij void is er geen terugkeerwaarde 3. stem > is de naam van de methode 4. (String naam) > zijn de parameters van de methode

package

Een package bestaat uit een groep klassen die op de een of andere manier bij elkaar horen.

this

Voor een gegeven object is this een referentie naar zichzelf. Een attribuut is tijdelik onzichtbaar in een methode waar een formele parameterdezelfde naam heeft als het attribuut, door this te gebruiken wordt het attribuut toegankelijk.

Constructor

is een speciaal soort methode om een object te maken van een klasse, denk aan ()!! aanroep

new Klassennaam(parameterlijst);

de aanroep levert een instantie van klasse op: een object voorbeeld:

Kandidaat arjan; arjan = new Kandidaat("Arjan Kok", "Breda");

een klassenaam begint altijd met een hoofdletter en het is gebruikelijk om geen underscores te gebruiken.

Pagina 2 van 10

JAVA - edX - Introduction to programming with Java Opbouw JAVA programma in 5 stappen (stap 1 en 3 hoeft niet altijd aanwezig te zijn) packagedeclaratie en importopdrachten klasse creatie en declaratie (en eventueel attribuut declaraties)

package naampackage; import packagenaam.klassenaam.enumNaam; /** documentatie * hier komt de tekst en uitleg over het programma * zodat het duidelijk en leesbaar is voor andere programmeurs */ public class VoorbeeldClass1 { private String attribuut1;

methodedefinitie(s) voorbeelden

public int add(int a, int b) { System.out .println("De som is

: "+ (a+b));

return (a+b); } public boolean testAttribuut1(String x) { return (x.equals(attribuut1)); } public boolean setAttribuut1(String oud, String nw) { if (testAttribuut1(oud)) { attribuut1 = nw;

klasse definitie

System.out .println(canDrive); return true; } else return false; } } public static void main(String[] args) { VoorbeeldClass1 myVoorbeeldClass1 = new VoorbeeldClass1(); public Rekening(String naam, int nummer){ this.naam = naam; this.nummer = nummer; }

methode main constructor > constructor > hier verwijzen naam en nr naar de attributen vd nieuwe rekening, zonder this. Zouden ze naar de waarden vd parameters

constructor > wat doen >

Calculator myCalculator = new Calculator(); myCalculator.add(5, 7); object.methodenaam(parameterlijst); // je hoeft niet alle gemaakte methoden op te roepen in de main, ze kunnen ook voor een subklasse gemaakt zijn. }

afsluiten }

VERGELIJKINGEN Er zijn 2 soorten variabelen, het type bepaald de manier van werken: Primitief type Referentie type

ARITHMETIC OPERATORS Operator

gebruik van operatoren als + of *, zie arithmetic/rekenkundige operators het aanroepen van een methode

(rekenkundige)

eigen

Description

+

optellen

Addition operator - Adds operands on both sides of the operator

-

aftrekken

Subtraction operator - Subtracts the right hand operand from the left hand operand

*

keer

Multiplication operator - Multiplies operands on both sides of the operator

/

delen

Division operator - Divides the left hand operand by the right hand operand

Pagina 3 van 10

JAVA - edX - Introduction to programming with Java %

rest bij deling

++

1 ophogen

Modulus operator - Divides the left hand operand by the right hand operand and returns remainder Increment operator - Increases the value of operand by 1

--

1 verlagen

Decrement operator - Decreases the value of operand by 1

RELATIONAL OPERATORS bij vergelijken van primitieve typen, geeft TRUE of FALSE Operator

eigen

Description

==

gelijk aan

!=

ongelijk aan

>

groter dan

<

kleiner dan

Checks if the values of the two operands are equal or not, if yes then the condition becomes true. Checks if the values of the two operands are equal or not, if values are not equal then the condition becomes true Checks if the value of the left operand is greater than the value of the right operand, if yes then the condition becomes true. Checks if the value of the left operand is less than the value of the right operand, if yes then the condition becomes true. Checks if the value of the left operand is greater than or equal to the value of the right operand, if yes then the condition becomes true. Checks if the value of the left operand is less than or equal to the value of the right operand, if yes then the condition becomes true.

>= && > ||

ASSIGNMENT OPERATOR Operator

=

Description

toewijzen / wordt

Simple assignment operator. It assigns values from right side operands to left side operand

INCREMENT X Operator

(toewijzen)

eigen

(een variabele "ophogen" kan met …. X +=1;)

eigen

Description

x += 1;

optellen

Addition - Adds c++ > tel 1 bij c op

x -= 2;

aftrekken

Subtract - Subtracts

x *= 3;

keer

Multiply

x /= 4;

delen

Divide

rest bij deling

Modulus

x %= 5;

c-- > trek 1 van c af

EXPRESSIONS AND OPERATIONS als…dan

if ([voorwaarde]) { [conditie als waar]; } else { [conditie als onwaar]; } de else hoort bij de dichtstbijzijnde if tenzij het duidelijk anders wordt aangegeven door gebuik van haakjes.

als…dan in een regel (ternary)

stel :

int fuelLevel = 3; char canDrive = (fuelLevel > 0) ? 'Y' : 'N'; System.out.println(canDrive);

resultaat: repeat

Het resultaat hier wordt Y, hier wordt de als…dan lus in een regel verwerkt bij het declareren van de variabele.

while ([voorwaarde boolean]) { [conditie als waar/statements]; } herhalen tot een doel is bereikt, expressed met Boolean

repeat met teller

for ([variabele]; [voorwaarde]; [update statement]) {[wat moet je doen];} hetzelfde blijven (mbv een teller) doen tot een teller een een bepaalde waarde heeft. Het update statement wordt na de for loop uitgevoerd en niet ervoor, dus na hetgeen je moet doen als het waar is.

switch statement

voorbeeld:

int keuze = 2; switch (keuze) { case 1: System.out .prtintln("je keuze was 1"); break; case 2: System.out .prtintln("je keuze was 2, echt waar"); break;

Pagina 4 van 10

JAVA - edX - Introduction to programming with Java default: System.out .prtintln("je hebt niet gekozen"); break; } Hier wordt de regel "je keuze was 2, echt waar" weergegeven. De break heb je nodig om uit het switch statement te gaan nadat er voldaan is aan de conditie. Zonder de break zal Java door blijven gaan met zoeken of er voldaan wordt aan een van de conditie en neit meer stoppen. Default wprdt gegeven als er geen waarde voldoet aan de waardewn die bij case zijn opgegeven. expressie

Een expressie is een constante (final) of een andere variabele of een resultaat methodeaanroep of een combinatie van deze met opratoren.

ARRAYLIST Wordt gebruikt om aan een reeks objecten van een bepaalde klasse te kunnen refereren, er mogen geen primitieve types instaan, dus geen integers of doubles. ArrayList schelpen = new ArrayList(); add (T element) toevoegen element van type T, het element moet wel al gecreëert zijn. creatie en toevoegen kan in één regel: bv: verzameling.add(new Kandidaat("Femke", "Amsterdam"));

get(int i): T size(): int for-each

of: verzameling.add(naamKand) als de variabele naamKand al eerder gedeclareerd en creeert was. levert het i-de element (start vanaf 0) geeft het aantal elementen in de lijst, begint met 1 (het aantal van een array is altijd < dan de size en nooit > een variabele lijst = kandidaten For-each is gemaakt om de hele verzamleing te onderzoeken.

ARRAYS kenmerken

begint altijd met 0 als eerste plek, dus 0, 1, 2, 3, 4, ………, n Een array kan van waarden verschillende typen bevatten, maar in één array hebben alle waarden hetzelfde type. Een array kan verschillende lengtes hebben, maar als de lengte van een array is vastgesteld kan deze niet meer worden gewijzigd, zonder de opgeslagen elementen te verliezen. Bij het aanmaken van een array wordt de lengte van de array al bepaald. De elementen van een array kunnen via indices benaderd worden. Een array naam met een index kan gebruikt worden zoals een integer variabele gebruikt wordt. length()

declareren

aangeven welk type en welke naam .

maken

a[2]

gebruikt length() om het aantal attributen in een array te bepalen, zodra de array gemaakt is, ligt deze waarde vast en kan hij niet meer gewijzigd worden.

staat hier voor de 2e index uit de array, dus 0, 1, 2 > het 3e element in de array

Pagina 5 van 10

JAVA - edX - Introduction to programming with Java maken en declareren

er zijn de volgende mogelijkheden en de rode worden het vaakste gebruikt. anArrayOfXxxx is hier de naam van de array. Bv int[] staat voor het type van de elementen.

initialisatie

Gebeurt als volgt voor bv een numeriek array: a = new int[5]; Deze array heeft een maximale lengte van 5 elementen. Is het toewijzen van de waarden aan een variabele of array.

Alles in een keer

Kan in een regel als volgt voor bv een numeriek array: int[] a = new int[4]; Deze array heeft een lengte van 4 elementen en de Indices gaan van 0 t/m 3. a[0] is hier het eerste element en a[3] het laatste. toewijzen van Een array naam met een index kan gebruikt worden zoals een integer variabele gebruikt waarden aan wordt. Bv: elementen

maken, declareren én toewijzen (initialiseren) van de elementen kan ook in één regel gebeuren, op de volgende wijze: int[] a = {2, 0, 1, 5}; Het gebruik van het keyword new is nu niet nodig. kenmerken

Een String is niet hetzelfde als een Char array. Je kunt wel een String naar een Char array conventeren en vise versa. Een element van een array kan zelf ook weer een array zijn. Dat wordt een bi-dimensionale array of multi-dimensionale array genoemd.

Conclusie

Bij de declaratie wordt de lengte van de array vastgesteld en kan niet meer worden gewijzigd. Alle elementen zijn van hetzelfde type en de elementen zelf kunnen ook weer uit een of meerdere arrays bestaan.

ARRAYLIST Wordt gebruikt om aan een reeks objecten van een bepaalde klasse te kunnen refereren, er mogen geen primitieve types instaan, dus geen integers of doubles. Is een klasse om een verzamleing mee weer te geven, de objecten in deze verzameling moeten allemaal van het zelfde soort zijn en bestaat dus uit een serie data elementen. size()

gebruikt size() om het aantal elementen op te vragen.

ArrayList ArrayList schelpen = new ArrayList(); add (T element) toevoegen element van type T, het element moet wel al gecreëert zijn. creatie en toevoegen kan in één regel: bv: verzameling.add(new Kandidaat("Femke", "Amsterdam")); of: verzameling.add(naamKand) als de variabele naamKand al eerder gedeclareerd en creeert was. levert het i-de element (start vanaf 0)

get(int i): T size(): int for-each

geeft het aantal elementen in de lijst, begint met 1 (het aantal van een array is altijd < dan de size en nooit > een variabele lijst = kandidaten For-each is gemaakt om de hele verzamleing te onderzoeken.

ARRAYS, ARRAYLIST & FOR LOOPS For Loop

voert een statement uit in een bepaalde volgorde, bv het veranderen van de waarden van de elementen in een array, dit noemt men Map:

Pagina 6 van 10

JAVA - edX - Introduction to programming with Java Enhanced For Om door een array heen te lopen met een loop vanaf index 0 tot en met het einde van de array is zo Loop algemeen dat daar een speciale For Loop voor is gemaakt. De Enhanced For Loop, hier wordt de variabele elem gebruikt. De betekenis van dit stukje codering is gelijk aan de codering van optie 1 en optie 2. Dit noemt men Reduce:

Mapreduce

MapReduce kan in korte tijd veel data verwerken doordat het een grote taak opsplitst in deeltaken. Die deeltaken worden over meerdere computers verdeeld. Wordt veel gebruikt bij Big Data.

DATA Flip Flop Bit

kan maar 2 waarden hebben, 0 of 1. Kan 1 bit aan informatie opslaan. 1 flip flop = 1 booleon. Alles kan terug gebracht worden naar 0 en 1 1 flip flop

Byte

is 8 bits, java gebruikt een unicode mapping van 16 bits. Heeft 256 combinaties (2 tot de macht 8) bv getallen van 0 t/m 255

nibble

Een nibble is een groepje van 4 bits

DATATYPEN Datatype: integer

type

Omschrijving

byte

bestaan uit 8 bits en geven de getallen -128 tot 127

short

bestaan uit 16 bits en geven de getallen -32768 tot 32767

int

bestaan uit 32 bits en geven de getallen meer dan 2 biljoen

long

bestaan uit 64 bits en geven de getallen meer dan 2 biljoen

float

plus en min Primitieve datatypen

single-prcecision 32-bit EEE 754 floating point. Is een datatype dat nummers met decimalen (floating point number) opslaat in JAVA en gebruikt 32 bits. double double-prcecision 64-bit EEE 754 floating point. Is een datatype dat nummers met decimalen opslaat in JAVA en gebruikt 64 bits. Altijd gebruiken !! 10101010b=170 en 01010101=85 horen bij elkaar > 85 + 170 = 255 geven een plus en min getal, min wordt aangegeven met een b achter de 8 bits codering boolean

voor true of false, als er geen waarde is toegewezen is het altijd false.

char

vertegenwoordigd een enkelvoudig teken / single character'met single quotes insluiten

integers

byte short int > wordt het vaakste gebruikt long

reals

float double > wordt het vaakste gebruikt

Referentie datatypen

String

een string is een reeks tekens achter elkaar. Een string is eigenlijk ook een object. Een string is immutable, niet veranderbaar, je maakt of een nieuw object of je wijst naar het object waar de string al instaat. Met equals kun je strings vergelijken.

Java klassen

KLASSEN, OBJECT en VARIABELEN schematisch weergeven schematisch weergeven

variabelen (rechte hoeken)

object (ronde hoeken)

Pagina 7 van 10

JAVA - edX - Introduction to programming with Java de string "rood" in de variabele is eigenlijk ook weer een object. Dit zou ook aangegeven kunnen worden als een "apart" object met ronde hoeken. Indien dit voorkomt op tentamen wordt daarin aangegeven op welke manier dit in deze schema's weergegeven moet worden.

klassediagram

Een klasse is een beschrijving van gelijksoortige objecten. De klasse beschrijft: klassenaam over welke soort objecten gaat het attributen welke gegevens beheerd worden types wat voor gegevens het zijn methoden welk gedrag kan worden vertoond Heeft altijd dezelfde naam als de klasse. Hoe een instantie wordt gemaakt, altijd maken. In de constructor staat altijd een waarde voor alle attributen, op die manier krijgen ze een beginwaarde. final en/of static

als bij een declaratie van een attribuut static en/of final staat, dan is het een klasse attribuut. En moet het onderstreept weergegeven worden in het klassediagram.

KLASSE Definitie van een klasse

[package declaratie] importopdrachten toegang class klassenaam [extends klassenaam] { attribuutdeclaraties constructordefinities methodedefinities } Data Hiding: Attributen zijn niet direct toegankelijk maar alleen maar opvraagbaar via methoden. Get is opvragen en Set is wegschrijven cq wijzigen Overerving:

GUI GEBRUIKERSINTERFACES property Jframe

Tonen ve Frame

defaultCloseOpera moet ALTIJD gelijk zijn aan EXIT/EXIT_ON_CLOSE: zorgt ervoor dat bij het tion venster/frame gesloten wordt, de applicatie ook stopt. title Altijd invullen, geeft de titel van het fram aan. ContentPanel > moet op "Absolute Layout / (absoluut)" staan, dan kun je achteraf het scherm nog van Layout positie veranderen. Op de volgende manier kunnen we een venster genaamd BasiFrame laten zien op het scherm: public class BasisMain { public static void main(String[] args) { BasisFrame gui = new BasisFrame(); gui.setVisible(true);

Pagina 8 van 10

JAVA - edX - Introduction to programming with Java } } Eerst wordt het scherm gedeclareerd en aangemaakt, daarna moeten we nog vertellen dat we het scherm willen laten zien. Daar zijn dus 2 aparte classes voor nodig, bv BasisFrame en BasisMain.

GUI ARCHITECTUUR interfacelaag

is een laag met klassen die de communicatie met de gebruiker verzorgen (bv Frame en het aanroepen van dat frame), hoe ziet het eruit.

domainlaag

is de laag met klassen die het deel van de werkelijkheid modelleren.

architectuur

Objecten van een GUI kunnen gebruik maken van object(en) uit de domeinlaag Objecten uit de domeinlaag mogen nooit gebruik maken van objecten uit de GUI-laag Door de architectuur in lagen zijn domeinklassen en GUI-klassen ontkoppeld: bij dezelfde domeinlaag kunnen meerdere GUI’s gemaakt worden Aandachtspu nten bij werken met GUI

GUI bevat vaak een attribuut dat verwijst naar een object uit de domeinlaag Visuele componenten moeten waarden krijgen via domeinobjecten: meestal in methode mijnInit() Events moeten afgehandeld worden Ingevoerde of geselecteerde waarde moet gelezen worden: getText(), getSelectedItem() of getSelectedIndex(). Let op alle velden die je uitleest zijn strings. Gelezen waarden zijn Strings (getallen ook!!); vaak is conversie nodig In interfacelaag moet niet gerekend worden. Voor een GUI moeten altijd 2 klassen gemaakt worden, een voor de opbouw van het scherm en een voor het aanroepen van dat scherm. De GUI doet alleen het grafische deel, geen ectra functionaliteit hier toevoegen en niet laten rekenen.

GUI & PACKAGES Lagen in aparte packages

de verantwoordelijkheid van Klassen zijn klein, een GUI-klasse is alleen verantwoordelijkheid voor de visuele componenten. De verantwoordelijkheid van een methode mag nooit groter zijn dan een enkele taak.

Pagina 9 van 10

JAVA - edX - Introduction to programming with Java Aandachtspu nten bij het werken met een GUI

GUI bevat vaak een attribuut dat verwijst naar een object uit de domeinlaag Visuele componenten moeten waarden krijgen via domeinobjecten: meestal in methode mijnInit() Events moeten afgehandeld worden Ingevoerde of geselecteerde waarde moet gelezen worden: getText(), getSelectedItem() of getSelectedIndex() Gelezen waarden zijn Strings (getallen ook!!); vaak is conversie nodig

Voorbeeld van een GUI

VARIABELEN variabelen

samenvatting:

Pagina 10 van 10

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF