Në gjuhën programuese Java, final është një fjalë kyçe e cila shfrytëzohet në kontekste të ndryshme për shkaqe të definimit të një entiteti që më vonë nuk mund të ndryshohet.

Klasat finale

Redakto

Klasat të cilat janë të definuara si finale (me anë të fjalës kyçe final) nuk mund të kenë nënklasa që i trashëgojnë ato. Kjo veti e gjuhës programuese Java është implementuar për shkaqe të sigurisë dhe eficiencës. Në përputhje me këtë veti, të gjitha libraritë standarde të Java janë të definuara si finale, p.sh. java.lang.System dhe java.lang.String. Rrjedhimisht, të gjitha metodat brenda një klase finale konsiderohen finale.

Shembull:

public final class KlasaFinale {...}

Metodat finale

Redakto

Metodat finale nuk mund të trashëgohen dhe ta kenë strukturën dhe funksionalitetin e mbishkruar nga nënklasat. Kjo veti është implementuar për shkaqe të parandalimit të sjelljeve të papritura që mund të rrjedhin nga ndryshimi i metodës prej anës të nënklasës, ku kjo mund të qojë drejtë jo-stabilitetit të klasës prindërore[1].

Shembull:

public class Klasa {
    public final void MetodaFinale() {...}
}

Variablat finale

Redakto

Variablat finale në krahasim prej variablave tjera, mund vetëm një herë të marrin vlerë. Pra, variabla bëhet e pandryshueshme menjëherë pasi që ta fiton vlerën, p.sh. public static final double PI = 3.141592653589793; do të jetë e pandryshueshme gjatë tërë ekzistencës të klasës dhe do të shfrytëzohet si konstantë[2].

Shembull:

public class Sfera {

    /**
     * Definimi i konstantës matematikore Pi
     */
    public static final double PI = 3.141592653589793;

    /**
     * Definimi i radiusit si dhe koordinatave hapësinore 
     * x, y, dhe z për sferën.
     */
    public final double radiusi;
    public final double koordinataX;
    public final double koordinataY;
    public final double koordinataZ;
 
    Sfera( double r, double x, double y, double z ) {
         radiusi = r;
         koordinataX = x;
         koordinataY = y;
         koordinataZ = z;
    }
 
    [...]
}

Referime

Redakto
  1. ^ "Writing Final Classes and Methods". Sun Microsystems, Inc. 2008-02-14. Marrë më 2009-01-29. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!) - Transclusion error: {{En}} is only for use in File namespace. Use {{lang-en}} or {{in lang|en}} instead.
  2. ^ Kathy Sierra; Bert Bates (2005-02-09). "Chapter 10: Numbers Matter". Head First Java (bot. 2). O'Reilly Media, Inc. fq. 278. ISBN 0-5960-0920-8. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!) - Transclusion error: {{En}} is only for use in File namespace. Use {{lang-en}} or {{in lang|en}} instead.