Article View: be.comp.programming
Article #8654Re: Paar vraagskes over java voor examen
From: Gunther
Date: Wed, 19 Jun 2002 21:12
Date: Wed, 19 Jun 2002 21:12
85 lines
4042 bytes
4042 bytes
"Ruben" <ruben@gekiere.com> wrote in message
news:8a5Q8.40988$ud.5838@afrodite.telenet-ops.be...
> Morgen examen van java en der zijn nog wa dingen dak nie goe niemer weet:
>
>
> voor een array: onderaan staat mijn code, wat is er mis mee ?
(een) Oplossing: zie beneden
> moet ik arrays in het init gedeelte van een applet declareren of mag het
> erbuiten ?
De init-methode wordt 1 keer opgeroepen gedurende de uitvoering van een
applet, en is altijd de eerste methode die wordt opgeroepen in elke applet.
Die init methode dient om aan uw instantievariabelen (getallen hier) een
waarde toe te kennen (getallen[0]=5; etc.) en initialiseert dus de
variabelen. (zolang variabelen enkel gedeclareerd zijn en niet
ge�nitialiseerd nemen ze geen plaats in, in het geheugen) Het declareren van
een variabele (dus den array bij u) gebeurd waar ge wilt; hangt er vanaf of
ge uw variabele zichtbaar wilt hebben voor alle methoden in uw klasse
(globale variabelen) of enkel in die methode (lokale variabelen). In uw
geval moet ze globaal zijn want ge hebt ze zowel in init en in paint nodig.
Wat er groof fout is bij u is dat ge schrijft:
int getallen[] = new int[3];
getallen[0]=5;
getallen[1]=4;
getallen[2]=3;
=> 2de, 3de en 4de regel kent compiler getallen niet, zo'n zaken dus in den
init zetten
Andere fout:
g.drawString(getallen[0] + getallen[1] + getallen[2],60,60);
=> drawString met parameters int, int, int bestaat nt, wel string, int, int
Simpele oplossing is hiervoor concateneren met een string dus:
g.drawString(getallen[0] + getallen[1] + getallen[2]+"",60,60);
Zie je het? Nu behandeld hij deze als een string ipv int
Detail: je maakt best getallen private => inkapseling van waarden
> arrays starten van 0, als ik een neem bv getallen[3] , is dat dan van 0-2
(3
> elementen) of van 0-3 (4 elementen) ??
bv int getallen[] = new int[3];
lengte = 3;
in java duidt je elk element in deze rij aan door: getallen[0] ;
getallen[1]; getallen[2]
Wanneer je schrijft getallen[3] krijg je een ArrayIndexOutOfBoundsException
omdat je wil verwijzen naar een element in de rij dat niet bestaat nl het
vierde.
Wanneer je de getallen van bv 0 tot 3 wilt optellen kun je dit zo doen:
int som = getallen[0] + getallen[1] + getallen[2]
of
int som = 0;
for(int i=0; i < getallen.length;i++)
som += getallen[i];
Is dit een antwoord op je vraag?
Oplossing:
**************************************************************
import java.awt.*;
import java.applet.*;
public class VoertuigTestApllet extends Applet {
private int getallen[] = new int[3];
public void init(){
getallen[0]=5;
getallen[1]=4;
getallen[2]=3;
}
public void paint(Graphics g) {
double test = 5.3;
g.drawString(Double.toString(test),60,60);
g.drawString(getallen[0] + getallen[1] + getallen[2]+"",60,60);
}
}
**************************************************************
succes,
Gunther (die hoopt dat hem hier geen stomme fouten heeft ingeschreven, kzen
zo moe :) )
Technical Details
Message-ID:
<3d10f415$0$6944$ba620e4c@news.skynet.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-05!sn-xit-08!supernews.com!priapus.visi.com!news-out.visi.com!hermes.visi.com!skynet.be!skynet.be!louie!not-for-mailReferences:
<8a5Q8.40988$ud.5838@afrodite.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,a85d722b17cd4bd6 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-06-19 14:15:16 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-05!sn-xit-08!supernews.com!priapus.visi.com!news-out.visi.com!hermes.visi.com!skynet.be!skynet.be!louie!not-for-mail From: "Gunther" <warlock@nospamme@belgacom.net> Newsgroups: be.comp.programming References: <8a5Q8.40988$ud.5838@afrodite.telenet-ops.be> Subject: Re: Paar vraagskes over java voor examen Date: Wed, 19 Jun 2002 23:12:25 +0200 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Lines: 87 Message-ID: <3d10f415$0$6944$ba620e4c@news.skynet.be> Organization: -= Skynet Usenet Service =- NNTP-Posting-Host: 217.136.149.122 X-Trace: 1024521238 reader1.news.skynet.be 6944 217.136.149.122 X-Complaints-To: abuse@skynet.be