private abstract array
Deze tutorial bespreekt speciale constructors zoals Private constructor in Java, Abstract, String, Array, Interface en Destructor in Java:
In onze laatste tutorial over constructors in Java hebben we de belangrijke concepten met betrekking tot constructors in Java geleerd. We hebben besproken hoe je een constructor kunt maken en de regels om constructors te definiëren, samen met de soorten constructors, enz.
We leerden ook overbelasting van constructeurs en ketenvorming van constructeurs. Laten we nu enkele speciale constructors bespreken, zoals een privéconstructor, een abstracte constructor en string & array constructors in Java. Daarna bespreken we destructors in Java en tot slot gaan we de verschillen tussen methode en constructors onderzoeken.
Bekijk hier de Java-beginnershandleiding.
Laten we beginnen met een Private Constructor in Java.
Wat je leert:
- Particuliere constructeur in Java
- Abstracte klassenconstructeur in Java
- Interface-constructor in Java
- String Constructor in Java
- Array Constructors in Java
- Destructor in Java
- Constructor versus methode in Java
- Veel Gestelde Vragen
- Gevolgtrekking
- Aanbevolen literatuur
Particuliere constructeur in Java
Zoals eerder vermeld, kunnen constructors in de Java-klasse toegangsspecificaties hebben die eraan zijn gekoppeld. Daarom kunnen we constructeurs hebben die privé of openbaar zijn. We zullen meer over toegangsspecificaties bespreken in onze volgende tutorials en we zullen ook constructors opnieuw bezoeken.
Als de constructor privé wordt verklaard, is deze alleen toegankelijk binnen de klasse. Het heeft geen toegang tot de afgeleide klassen via een andere klasse. Daarom moeten we een publieke methode in de klasse voorzien die private constructors heeft, zodat deze publieke methode toegang heeft tot de private constructors.
In Java kan private constructor worden gebruikt in de volgende situaties:
- Voor het implementeren van singletons.
- Voor het opnemen van fabrieksmethoden.
- Voor klassen die alleen statische leden hebben (variabelen en methoden).
- Voor klassen met laatste leden. (constanten - definitief en statisch).
- Om type-veilige opsommingen te gebruiken.
Als voorbeeld , laten we een singleton-les nemen. Een singleton-klasse is een klasse die slechts één object tegelijk toestaat. We kunnen de private constructor gebruiken om ervoor te zorgen dat we niet meer dan één object laten maken.
Het onderstaande programma implementeert een singleton-klasse met behulp van een privéconstructor.
hoe je een jar-bestand opent met java
Uitgang:
Het bovenstaande programma declareert een singleton-klasse. We hebben een private constructor en een openbare methode voorzien om toegang te krijgen tot de private constructor en ook om het aantal objecten te beperken tot slechts één. In de hoofdmethode voeren we de methode public uit om een singleton-klasseobject te maken.
Abstracte klassenconstructeur in Java
Abstracte klasse in Java als C ++, behalve dat we in tegenstelling tot C ++ een abstract trefwoord in Java hebben dat wordt gebruikt om een abstracte klasse te declareren. Abstracte klassen in Java kunnen constructors hebben. Deze constructor van abstracte klassen wordt aangeroepen wanneer we een instantie van een implementatieklasse maken (die een abstracte klasse overneemt).
Beschouw het volgende voorbeeld van een abstracte klassenconstructor.
Uitgang:
Omdat een abstracte klasse niet kan worden geïnstantieerd, erven we een nieuwe klasse van deze abstracte klasse. De uitvoer van het programma laat zien dat wanneer we een object van de afgeleide klasse in de hoofdmethode maken, de constructor van de abstracte klasse eerst wordt aangeroepen, gevolgd door een afgeleide klasseconstructor.
Interface-constructor in Java
Interfaces in Java zijn vergelijkbaar met abstracte klassen. Interfaces zijn standaard openbaar abstract en hebben alleen methode-prototypes. Deze prototypes worden vervolgens geïmplementeerd in de klasse die de interface implementeert.
Zijn constructeurs dus aanwezig in interfaces?
Nee. Interfaces hebben geen constructors. Dit komt omdat de methoden in een interface slechts prototypes zijn en daarom hoeven we geen instantiëren of een object van de interface te maken, omdat we het helemaal niet gaan gebruiken. Daarom is het ook niet nodig om een constructor in de interface te hebben.
Het onderstaande Java-programma demonstreert deze logica.
Uitgang:
Hier hebben we een interface ‘Interface_add’ met één methode ‘addNumbers’-prototype. Vervolgens implementeert een klasse ‘AddClass’ deze interface en ook de methode addNumbers.
In de hoofdmethode wordt de klasse geïnstantieerd en wordt de methode uitgevoerd. Daarom zien we geen behoefte aan een constructor in deze interface.
Laten we nu eens kijken naar de constructeurs van enkele reeds bestaande klassen in Java-achtige String en Array.
String Constructor in Java
Een string-object in Java kan worden gedefinieerd als een object van de klasse String. String-klasse biedt de volgende constructors om String-objecten te maken en te initialiseren.
Enkele van deze constructeurs worden hieronder besproken:
# 1) String (byte () myArray)
Construeert een nieuw String-object uit een gegeven byte-array. Voor het construeren van het string-object gebruikt het de standaard platformtekenset en decodeert het de byte-array.
Voorbeeld:
# 2) String (byte () myArray, Charset char_set)
Deze constructor construeert een nieuw string-object door char_set te gebruiken die is opgegeven in de constructor-aanroep om de byte-array te decoderen.
Voorbeeld:
# 3) String (char () myArray)
We kunnen een String-object construeren uit een character array.
Voorbeeld:
# 4) String (char () myArray, int start_index, int count)
Hier construeren we een String-object uit tekenarray door het aantal tekens vanaf start_index tot en met de telling op te nemen.
Voorbeeld:
# 5) String (int () intArray, int offset, int count)
De bovenstaande constructor wijst een nieuw String-object toe vanuit een int-array. Het aantal tekens in de string wordt bepaald door offset en count.
Voorbeeld:
# 6) String (StringBuffer strbuffer)
In deze constructor wordt een nieuw String-object opgebouwd uit een StringBuffer-object.
sql vragen en antwoorden voor ervaren
Voorbeeld:
# 7) String (StringBuilder strbuilder)
Er wordt een nieuw String-object gemaakt met behulp van het StringBuilder-object.
Voorbeeld:
waar vind ik de beveiligingssleutel
Array Constructors in Java
Arrays gebruiken constructors om arrays te maken en te initialiseren met een nieuw trefwoord, zoals hieronder wordt weergegeven.
De bovenstaande instructie initialiseert een array van 4 elementen naar standaard 0.
Een andere manier om de array te initialiseren wordt hieronder gegeven:
Destructor in Java
Tot nu toe hebben we constructeurs in Java gezien waarmee we een object maken. Wanneer het object klaar is met zijn taak en niet langer nodig is, moet het geheugen dat aan het object is toegewezen, worden vrijgegeven of ongedaan gemaakt. Dit is de taak van een destructor in Java.
In Java is de Garbage Collector verantwoordelijk voor het vrijgeven van de objecten die niet meer in gebruik zijn of onbereikbaar zijn geworden. Destructors in Java worden finalizers genoemd en ze zijn niet-deterministisch, zodat we niet kunnen garanderen dat ze zullen worden uitgevoerd.
In Java hoeven we ons geen zorgen te maken over destructors. Destructors hebben geen specifieke syntaxis in Java. Objecten worden vernietigd, maar we noemen destructor niet zoals we het in C ++ noemen.
Zoals hierboven vermeld, wordt het werk van de destructor gedaan door de finalizer die wordt aangeroepen door de Garbage Collector.
De finalisatiemethode in Java wordt hieronder ter referentie gedemonstreerd.
Uitgang:
In het bovenstaande programma maken we een klasseobject. Stel het in op null en dan bellen we de methode System.gc (). Nu is dat object onbereikbaar en wordt de finalize-methode (destructor) impliciet aangeroepen.
Constructor versus methode in Java
Laten we enkele verschillen tussen een constructor en een methode in Java in een tabel zetten.
Constructeurs | Methode |
---|---|
Maakt een nieuw object aan. | Werkt op een reeds bestaand object. |
Een codeblok dat wordt gebruikt om de klasleden te initialiseren bij het maken van een object. | Een verzameling programmeerinstructies die een resultaat genereren wanneer ze worden uitgevoerd. |
Wordt gebruikt om initialisatie van objecten uit te voeren. | Een reeks instructies die worden uitgevoerd door Java. Bevat mogelijk een initialisatieroutine. |
Impliciet aangeroepen. | Moet expliciet worden aangeroepen in een programma. |
Wordt aangeroepen wanneer een nieuw object wordt gemaakt met het nieuwe trefwoord. | Wordt aangeroepen wanneer de methode wordt aangeroepen door de programmeur. |
Heeft dezelfde naam als die van een klas. | Het kan elke naam hebben die is toegestaan door de programmeertaal. |
Heeft geen retourtype. | Moet een retourtype hebben, anders moet het ongeldig worden geretourneerd. |
Een klasse kan veel overbelaste constructors hebben. | De klasse kan zowel overbelaste als verschillende methoden hebben. |
Het kan niet worden geërfd door de kindklasse. | Het kan worden geërfd door de kinderklasse en zelfs worden overschreven. |
Veel Gestelde Vragen
V # 1) Kunnen constructeurs privé zijn?
Antwoord: Ja. Constructeurs in Java kunnen privé zijn. Alle klassen, inclusief abstracte klassen, kunnen privéconstructors hebben. Met behulp van private constructors kunnen we voorkomen dat de klasse wordt geïnstantieerd of we kunnen het aantal objecten van die klasse beperken.
Vraag 2) Wat is het gebruik van Abstract Class Constructor in Java?
Antwoord: Een abstracte klassenconstructor wordt aangeroepen wanneer we een object van de afgeleide klasse maken dat de abstracte klasse erft. Behalve als de abstracte klasse enkele lidvariabelen heeft, kunnen we deze initialiseren in de abstracte klassenconstructor.
V # 3) Kunnen we een Parameterized Constructor definiëren in een abstracte klasse in Java?
Antwoord: Ja, we kunnen een constructor met parameters in een abstracte klasse hebben. Vervolgens kunnen we deze constructor aanroepen vanuit de afgeleide klasse die de abstracte klasse heeft geërfd met behulp van de aanroep super ().
Vraag 4) Weet je waarom er geen Destructor in Java is?
Antwoord: Java hoeft geen specifieke destructor te hebben omdat het zijn garbage collector heeft. Deze garbage collector vernietigt de objecten die onbereikbaar zijn en maakt het geheugen vrij. Een methode met de naam finalize is ook een onderdeel van de garbage collector die niet-deterministisch wordt uitgevoerd en de functie van destructor vervult, zoals het vrijmaken van de bronnen enz.
Vraag 5) Kan de abstracte klasse een lichaam hebben?
Antwoord: Nee. Een abstracte klasse kan alleen methode-declaraties en constructors hebben. De methoden zijn niet geïmplementeerd. De klasse die deze abstracte klasse erft, implementeert de methoden. Behalve prototypes of verklaringen kan het ook zichtbaarheid of toegangsspecificaties hebben.
Gevolgtrekking
Hiermee is onze tutorial over constructors in Java voltooid. Hier hebben we de definitie, creatie en soorten constructeurs behandeld. We hebben ook gesproken over overbelasting van constructeurs en het koppelen van constructeurs in Java.
We hebben abstracte en particuliere constructors in Java onderzocht en geleerd waarom interfaces geen constructors kunnen hebben. We hebben constructors gezien die worden gebruikt in array- en String-klassen.
We hebben ook gesproken over destructors in Java die de functie vervullen die tegengesteld is aan die van constructors. Constructeurs maken objecten terwijl destructors objecten vernietigen. In Java wordt de destructorfunctie uitgevoerd door de finalisator die wordt uitgevoerd tijdens garbagecollection.
We hebben dus geen specifieke destructor in Java en we hoeven deze niet te definiëren zoals we doen in C ++. We bespraken ook de verschillen tussen methode en constructor. We weten dat constructor niet hetzelfde is als een methode, maar we kunnen constructor als een speciale methode beschouwen.
Lees de Easy Java Training Series door.
Aanbevolen literatuur
- Java Constructor - Klasse-, kopieer- en standaardconstructeurs
- C # Concepts: Constructor, Destructor, Static Class, Struct & Enum
- Java String Array - Zelfstudie met codevoorbeelden
- Java String met String Buffer en String Builder Tutorial
- Java String length () Methode met voorbeelden
- Java String bevat () Method Tutorial met voorbeelden
- Java String indexOf methode met codevoorbeelden
- Java String CompareTo Method met programmeervoorbeelden