Video: Awesome iPhone Apps with Objective-C by Zack Chauvin 2025
Nogle gange vil du oprette en Java-klasse, der ikke kan instantieres overhovedet. En sådan klasse består udelukkende af statiske felter og metoder. Et godt eksempel i Java API er klassen
Math
.
Dens metoder giver funktionstypefunktioner, der ikke er egentlig forbundet med en bestemt genstand. Det kan være nødvendigt at oprette lignende klasser selv lejlighedsvis. Du kan oprette en klasse med statiske metoder til at validere inputdata, f.eks. Eller en databaseadgangsklasse, der har statiske metoder til at hente data fra en database. Du behøver ikke at oprette forekomster af nogen af disse klasser.
Du kan bruge et simpelt trick for at forhindre nogen i at instansere en klasse. For at oprette en klasseeksempel skal du have mindst en offentlig konstruktør. Hvis du ikke leverer en konstruktør i din klasse, indsætter Java automatisk en standardkonstruktor, som tilfældigvis er offentlig.
Alt du skal gøre for at forhindre, at et klassetilfælde oprettes, er da en enkelt privatkonstruktør, som denne:
Validering af offentlig klasse
{
privat validering () {} // forhindrer forekomster
// statiske metoder og felter går her
}
Nu fordi Konstruktøren er privat, klassen kan ikke blive instantiated.
Klassen
Math
bruger i øvrigt denne teknik til at forhindre, at du opretter forekomster fra den. Her er en faktisk kodestykke fra klassen
Math
:
Offentlig endelig klasse Math {
/ **
* Lad ikke nogen instantiere denne klasse.
* /
Privat Math () {}
Hvis dette trick er godt nok til de folk der skrev klassen
Math
, er det nok godt nok til dig.