Avatar billede danielhep Nybegynder
21. maj 2004 - 03:35 Der er 8 kommentarer og
2 løsninger

final variabler

hvad er og betyder final ?
Avatar billede simonvalter Praktikant
21. maj 2004 - 05:22 #1
En final variabel er en variabel som ikke kan blive ændret efter dens værdi er sat første gang. Det skal du svjv gøre når du erklærer den, eller i konstruktøren klassen.
Det kan have nogen performance og sikkerheds fordele at bruge final hvor du ved at en variabel altid vil være konstant.

de andre kan sikkert fortælle mere om det.
Avatar billede arne_v Ekspert
21. maj 2004 - 07:37 #2
Der er ikke så meget mere at fortælle.

Java final er ca. det samme som C++ const.

Typisk brug:

public class Foobar {
    public final static int A = 1;
    public final static int B = 2;
    public final static int C = 3;

som svarer til C++:

const int A = 1;
const int B = 2;
const int C = 3;

eller C:

#define A 1
#define B 2
#define C 3

(bortset fra at man i Java altid skal prefixe med klassen Foobar.A, hvor man
i C++ valgfrit kan ligge det udenfor en klasse)

Eneste jeg vil tilføje er at hvis man sætter final på en klasse så betyder det
at der ikke kan arves fra klassen:

public final class Foobar {

En lille finesse som vbliver brugt alt for lidt.
Avatar billede simonvalter Praktikant
21. maj 2004 - 08:04 #3
arne ved du om der vil være nogen hastigheds foreskel hvis en klasse er final eller vil det bare være god skik?
langt de fleste klasser man laver bliver jo ikke brugt til at arve fra.. ihvertfald mine.
Avatar billede arne_v Ekspert
21. maj 2004 - 08:08 #4
I gamle dage sagde man at der var en betydelig performance fordel ved at erklære
sine klasse final, fordi så behøvede JVM'en ikke ved metode kald tage
hensyn til muligheden for at metoden var overridet i en afledt klasse
(som objektet var instantieret med).

Så vidt jeg ved betyder det ikke noget idag.

Der er det mere for at undgå håbløse nedarvninger.
Avatar billede simonvalter Praktikant
21. maj 2004 - 08:09 #5
ok tak, fandt også noget læsning om det her

http://www-106.ibm.com/developerworks/java/library/j-jtp1029.html
Avatar billede danielhep Nybegynder
21. maj 2004 - 14:30 #6
loadet of arne....svar
Avatar billede arne_v Ekspert
21. maj 2004 - 14:55 #7
svar
Avatar billede arne_v Ekspert
21. maj 2004 - 14:55 #8
om igen
Avatar billede danielhep Nybegynder
21. maj 2004 - 17:18 #9
loadet....så mangler vi bare dig :=
Avatar billede simonvalter Praktikant
21. maj 2004 - 19:03 #10
ok skulle lige sove ;)
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