Video: HOE werkt een STREEPJESCODE en barcode scanner? ?☝? 2024
Soms wilt u een Java-klasse maken die helemaal niet kan worden geïnstantieerd. Zo'n klasse bestaat volledig uit statische velden en methoden. Een goed voorbeeld in de Java API is de
Math
-klasse.
De methoden bieden utility-type functies die niet echt geassocieerd zijn met een bepaald object. Mogelijk moet u zelf af en toe soortgelijke klassen maken. U kunt bijvoorbeeld een klasse maken met statische methoden voor het valideren van invoergegevens, of een databasetoegangsklasse met statische methoden om gegevens uit een database op te halen. U hoeft geen instanties van beide klassen te maken.
Je kunt een eenvoudige truc gebruiken om te voorkomen dat iemand een klasse maakt. Als u een klasse-instantie wilt maken, moet u ten minste één openbare constructor hebben. Als u geen constructor in uw klas levert, voegt Java automatisch een standaardconstructor in, die toevallig openbaar is.
Het enige wat u hoeft te doen om te voorkomen dat een klasse-instantie wordt gemaakt, is een enkele particuliere constructor, zoals deze:
publieke klasse Validatie
{
privévalidatie () {} // voorkomt instanties
// statische methoden en velden gaan hier
}
Nu, omdat de constructor is privé, de klasse kan niet worden geïnstantieerd.
Overigens gebruikt de klasse
Math
deze techniek om te voorkomen dat u instanties hiervan maakt. Hier is een echt codefragment uit de klasse
Math
:
openbare finale klasse Math {
/ **
* Laat niemand deze klasse detecteren.
* /
privé-wiskunde () {}
Als deze truc goed genoeg is voor de mensen die de
Math
-klasse hebben geschreven, is deze waarschijnlijk goed genoeg voor u.