Der Constructor/Konstruktor in Android/Java

S

Shelly22

Fortgeschrittenes Mitglied
0
Hallo alle zusammen.

Ich verstehe nach ewigen Programmieren noch immer nicht
was ein Konstruktor ist oder was er überhaupt bringt oder tun soll.


Bitte erklärt mir das wer in einer leichten form.
Will es endlich verstehen.



LG
 
Shelly22 schrieb:
Hallo alle zusammen.

Ich verstehe nach ewigen Programmieren noch immer nicht
was ein Konstruktor ist oder was er überhaupt bringt oder tun soll.


Bitte erklärt mir das wer in einer leichten form.
Will es endlich verstehen.



LG

Ein Konstruktor wird immer beim Instanziieren eines Objekts aufgerufen.

Es ist immer (*fast - es gibt auch andere Möglichkeiten) die erste Stelle die aufgerufen wird, sobald Du ein Objekt von einer bestimmten Klasse baust.

Es dient dazu, dein Objekt in einen bestimmten "Anfangsstatus" zu versetzen. Beispiele dazu wären z.B. bestimmte komplexe Klassenvariablen zu instanziieren und mit Werten zu befüllen.


Der Destruktor ist ist wiederum die Stelle, die aufgerufen wird, sobald dein Objekt aus dem Speicher fliegt - also zerstört wird. Dies geschieht in Java über den Garbage Collector - also automatisch. Viel häufiger werden Destruktoren in Sprachen wie z.B. C verwendet, da man sich da selbst um die Zerstörung von Objekten kümmert.


Grundsätzlich: Konstruktor -> erste Stelle im Code die aufgerufen wird, wenn du ein Objekt der Klasse machst, in dem der Konstruktor steht.

Destruktor -> letzte Stelle im Code die aufgerufen wird, wenn das Objekt aus dem Speicher fliegt.

Diese Möglichkeiten sind in der OOP sehr wichtig und nützlich.

EDIT: Die "onCreate" Methode deiner Activity-Klassen ist z.B. ein Konstruktor. Mit Sicherheit hast Du dort auch Quellcode stehen, nicht wahr? ;)
 
Zuletzt bearbeitet:
Hey danke dir @Max1809.

Sehr lieb von dir die Erklärung.

Ich Programmiere schon länger an/mit Android.

Deswegen peinlich das ich nicht mal weiß was ein Konstruktor ist.:(
Sehe halt oft ein Konstruktor, deswegen fragte ich mich was eigentlich der tut
oder bringen soll oder oder.

Mein Code steht natürlich in der Activity/onCreate :smile:
Bin natürlich mehr an der Widget sache interessiert.

Da gibt es selten ja eine Activity :smile:.



LG
 
Zuletzt bearbeitet:
Shelly22 schrieb:
Hey danke dir @Max1809.

Sehr lieb von dir die Erklärung.

Ich Programmiere schon länger an/mit Android.

Deswegen peinlich das ich nicht mal weiß was ein Konstruktor ist.:(

Mein Code steht natürlich in der Activity/onCreate :smile:
Bin natürlich mehr an der Widget sache interessiert.

Da gibt es selten ja eine Activity :smile:.



LG

Solange Du es anwenden kannst, ist das doch gut. :) Begriffe sind schall und rauch ... programmieren ist Praxis. ;)

In Sachen Widgets muss ich passen - dahingehend hab ich noch nichts gemacht. :confused:
 
Hallo,

ein constructor wird in java beim erzeugen eines Objektes einer Klasse aufgerufen z.B.:

Code:
Person neuePerson = new Person();

Das vor dem "=" stehende ist die Angabe der Referenz und dahinterstehend die Objekterzeugung. Hierbei wird ein neues Objekt der Klasse Person erzeugt und die Referenzvariable neuePerson "zeigt" auf das neu erzeugte Objekt.

In Java hat man nun die Möglichkeit beim Erzeugen von neuen Objekten das Objekt mit eigen definierten Parametern aufzurufen, im normal Fall eben um beispielsweise der hier angelegten Person direkt einen Namen zu geben.

Person.java
Code:
class Person {

String name;

public Person(String name) {
    this.name = name;
   }
}

main.java
Code:
Person neuePerson = new Person("Peter");

Da vom compiler nur jede Klasse ohne eigendefinierten constructor den sogenannten default constructor erhält (keine parameter) wird dieser nun sozusagen überschrieben und du kannst deine Person nurnoch erzeugen, indem du ihr immer standardmäßig einen Namen übergibst.
Um weiterhin die Möglichkeit zu erhalten ein Objekt der Klasse Person zu erzeugen, muss der default constructor selbst wieder definiert werden, eben ohne Parameter.

Auch wichtig: beim Aufrufen von statischen Methoden einer Klasse wird der constructor NICHT aufgerufen, da kein Objekt der Klasse erzeugt wird.


Hoffe war bisschen verständlich, bei Fragen gern melden, bin auch via skype oder teamspeak gerne zu einem Gespräch über Java verfügbar.

Grüße
Alex
 
Ja das stimmt :smile:


Aber wissen ist immer gut.
Gerade wenn man sich Bewirbt um einen Arbeitsplatz als Programmierer dann.

Ja die Widget ist schon bisschen komplizierter finde ich.


LG
 
Der default Constructor von Activity kommt übrigens aus der Klasse ContextThemeWrapper ruft aber wiederum nur den Constructor mit dem Argument null aus der Klasse ContextWrapper auf, die dann wiederrum den "baseContext" auf null setzt.

Muss man nicht zwingend wissen, aber falls es interessiert ;)
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.637
Data2006
D
OnkelLon
Antworten
13
Aufrufe
2.008
OnkelLon
OnkelLon
M
Antworten
4
Aufrufe
1.180
swa00
swa00
Zurück
Oben Unten