Avatar billede jpeace Nybegynder
19. september 2001 - 21:41 Der er 20 kommentarer og
2 løsninger

Deklarering af array

Jeg vil deklarere et array af BrikOplysninger.

Er det nok at gøre sådan:

brikliste = new BrikOplysninger[50];

Eller skal jeg gøre noget med hvert enkelt af de 50???

Mvh

Jan
Avatar billede tmceu Praktikant
19. september 2001 - 21:49 #1
Du kan godt gøre ovenstående, og vil så blot have et tomt array, som du kan smide værdier i senere, men du mangler dog en type foran brikliste.
Avatar billede erikjacobsen Ekspert
19. september 2001 - 22:15 #2
Du skal nu også lige nævne typen, og så kan du vælge at lave 50
brikker med det samme:

  BrikOplysninger brikliste = new BrikOplysninger[50];
  { for (int i=0;i<50;i++) brikliste[i] = new BrikOplysninger(); }
Avatar billede lbhansen Nybegynder
19. september 2001 - 22:22 #3
Bare for lige at gå lidt i detaljer:)
BrikOplysninger brikliste[] = new BrikOplysninger[50];
for (int i=0;i<50;i++)
  brikliste[i] = new BrikOplysninger();
Avatar billede erikjacobsen Ekspert
19. september 2001 - 22:30 #4
:) Jamen, du har da ganske ret i at der mangler et par []-er ...
Til gengæld vil jeg da lige slå et slag for at initialisere sådan et
array, dér hvor det er erklæret - og ikke bare vente til en constructor,
eller andet steds i klassen. Man kan nemlig:

public class MegetSjovtSpil {

  BrikOplysninger brikliste[] = new BrikOplysninger[50];
  { for (int i=0;i<50;i++) brikliste[i] = new BrikOplysninger(); }

  //... andre attributter

  public MegetSjovtSpil() {
  //... constructor
  }

  //... osv

}
 
Avatar billede tmouritsen Nybegynder
19. september 2001 - 22:48 #5
Måske:
{ for (int i=0;i<brikliste.length;i++) brikliste[i] = new BrikOplysninger(); }

i stedet for:
{ for (int i=0;i<50;i++) brikliste[i] = new BrikOplysninger(); }

da initialiseringen også vil følge med hvis man ændrer størelsen på briklisten, eller endnu bedre (hurtigere) vil være at deklarere en konstant og så benytte den begge steder.

Det er noget snavs at skrive selve talles to steder når det i alle tilfælde skal være det samme.
Avatar billede lbhansen Nybegynder
19. september 2001 - 22:51 #6
Så vil jeg dog holde mig til at lave den form for konstruktion i konstruktøren.

Man mister nemt overblikket ved at lave den form for inline initialisering.

Fx hvis du bruger udviklingsværktøjer som Visual Age, hvor variable er adskilt fra metoder.

Du sidder og roder i metoder hvor det array bliver initialiseret, men du finder det ikke.

Desuden vil sandsynligvis bliver eksekveret samtidig, selvom det var i konstruktøren
Avatar billede jpeace Nybegynder
19. september 2001 - 22:53 #7
Tak for svarene. Jeg har fået løst mit problem.
Vender lige tilbage med points\'ne.
Avatar billede erikjacobsen Ekspert
19. september 2001 - 23:12 #8
Ja, selvfølgelig skal vi bruge length i stedet for 50 !

Og nu er overskuelighed jo nok flere ting. Visual Age 4.0 tillader ikke
en sådan initialisering lige ved siden af felterklæringen (dér hvor man
lige netop kan se det ene felt). Det virker unægteligt lidt skørt, når det
nu er lovligt.

Men man kan da stadig gøre det på klasseniveau:

public class MegetSjovSpil {
  BrikOplysninger brikliste[] = new BrikOplysninger[50];
  { for (int i=0;i<brikliste.length;i++) brikliste[i] = new BrikOplysninger(); }
}

...og det med at lede efter initialiseringen i metoder er nok lidt et
tilvænningsspørgsmål. Jeg vil mene at en construktor kun bør initialisere
med de værdier, den får med som parameter. Alt andet skal ske \"ved siden
af\" erklæringen.
Avatar billede tmceu Praktikant
20. september 2001 - 00:14 #9
erikjacobsen >> har endnu ikke fået kigget på 4.0, er der noget rigtig nyt, eller er det blot endnu en version hvor den største nyhed er at den er langsommere og kræver endnu mere memory ?

jpeace >> undskyld at jeg nasser mig ind på dit spørgsmål :-)
Avatar billede erikjacobsen Ekspert
20. september 2001 - 00:28 #10
Jeg tror du skal spørge en der kender de tidligere versioner, tmceu. Den
virker nu da ganske hurtig på mine 325 MB
Avatar billede tmceu Praktikant
20. september 2001 - 00:49 #11
øv, jeg har brugt 3.02 og 3.5 en del og de er mildt sagt ikke for hurtige. Jeg antog bare at en virkelig Eksperten.ekspert som dig kendte alt til alt :-)
Avatar billede lbhansen Nybegynder
20. september 2001 - 06:44 #12
tmceu > Nu har jeg ikke selv kigget på VAJ4.0, da den
vidst kun er kommmet i en professional edition. Du kan nok regne med at den bruger de samme resource:)

Jeg tror kun at det nye er deployment til war filer, da websphere 4.0 bruger disse, ellers kan man påregne en masse bugfixes. Om ikke andet så udgår VAJ4.0 vidst også allerede i 2002, så om den er værd at sætte sig ind i, ved ikke rigtigt.
Avatar billede disky Nybegynder
20. september 2001 - 08:23 #13
tmceu:

Nu har det jo været sådanne at Jdk1.3 er hurtigere end jdk1.2 som var hurtigere end jdk1.1
SÅ gæt selv hvad jdk1.4 er :-) Den er en hel del hurtigere, den indeholder også en meget optimeret hotspot compiler.

Flere områder er blevet uhyggeligt optimeret, f.eks. 3D api\'en. den er nu blevet så hurtig at den er hurtig nok til at køre quake lignende spil !

Jeg var meget imponeret over det eksempler man så på årets JavaOne.

Men i det hele taget er Jdk1.4 hurtigere og bedre end de gamle.
Avatar billede erikjacobsen Ekspert
20. september 2001 - 09:29 #14
Du \"svarer\" simpelthen på alt, disky. Prøv lige at kigge: der er også et
afkrydsning som kommentar.

Dit \"svar\" er IKKE et svar på spørgsmålet, fra den oprindelige spørger, men
til en anden deltager, som ovenikøbet skriver \"undskyld at jeg nasser\".

Kan du forstå, at der er nogen, der er ved at være trætte af dig?
Avatar billede disky Nybegynder
20. september 2001 - 09:32 #15
erik:
Du blander dig i alt. Om jeg sætter svar ved kommentar eller svar er fløjtende ligegyldigt. Hvis du er utilfreds kan du jo forlade gruppen.

Hvem har udnævnt dig til politimand. Helt ærlig bland dig udenom.

p.s. Tak en kop kaffe, det hjælper på morgen surhed :)
Avatar billede tmceu Praktikant
20. september 2001 - 11:18 #16
disky >> nu vil jeg nødig ende midt i den krig i tilsyneladende har gang i, men jeg må give erik ret i, at du har skudt lidt ved siden af her.

Det spørgsmål jeg tillod at smide til erik, fordi han nu engang lige var aktiv i dette spørgsmål gik på Visual Age for Java, ikke jdk.
Avatar billede disky Nybegynder
20. september 2001 - 11:20 #17
tmceu: jeg havde ikke lige set du mente visual age, sorry.

Men om jeg svarer eller kommenterer er ikke noget erik har ret til at blande sig i. Desværre tror nogle brugere at de er hævet over andre og har ret til at kritisere og rette på andre hele tiden. Og det gider jeg bare ikke høre på. Derfor min besked til ham.

p.s. Det har intet med dig at gøre.
Avatar billede jpeace Nybegynder
22. september 2001 - 18:48 #18
Jeg har lidt problemer i pointafgivningen, da jeg kun kan give pts til tmceu.
Hvad gør jeg?
Erik J og lbhansen havde jeg også tænkt mig skulle have points.

Jan
Avatar billede jpeace Nybegynder
22. september 2001 - 18:50 #19
Jeg kan se I skal lige sætte mærke i \"Svar\"!!! Altså gør som disky... haha.
Avatar billede lbhansen Nybegynder
22. september 2001 - 19:03 #20
her er et svar
Avatar billede jpeace Nybegynder
03. oktober 2001 - 22:30 #21
Ok. Her er der så points.
Avatar billede jpeace Nybegynder
03. oktober 2001 - 22:30 #22
Og tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester