Heim >Computer-Tutorials >Computerwissen >Warum benötigt die Object-Klasse in Java einen Nullparameter-Konstruktor?
Object ist die übergeordnete Klasse aller Klassen, es gibt keine anderen Klassen, die es erben, daher muss es einen Konstruktor ohne Argumente für die Instanziierung haben.
Java ist eine plattformübergreifende objektorientierte Programmiersprache mit hervorragender Vielseitigkeit, Effizienz, Plattformportabilität und Sicherheit. Es wird häufig in PCs, Rechenzentren, Spielekonsolen, wissenschaftlichen Supercomputern, Mobiltelefonen und im Internet eingesetzt. Gleichzeitig verfügt Java über die größte professionelle Entwicklergemeinschaft der Welt und bietet eine solide Grundlage für seine weitere Entwicklung und Innovation.
Objektobjekte werden oft verwendet, um einige Objekte um uns herum in der realen Welt nachzuahmen.
Ein Softwareobjekt ist ein Modell eines realen Objekts mit Zustand und Verhalten. Der Status wird durch Variablen verwaltet, die durch Benutzerkennungen benannt werden. Methoden sind mit einem Objekt verknüpfte Funktionen, die das Verhalten des Objekts ausführen. Daher ist ein Softwareobjekt ein Modell, das den Zustand durch Variablen aufrechterhält und das Verhalten durch Methoden ausführt.
Objekte sind der Schlüssel zum Verständnis objektorientierter Technologie. Vor dem Lernen können Sie reale Objekte wie Hunde, Tische, Fernseher, Fahrräder usw. beobachten. Diese Objekte haben zwei gemeinsame Eigenschaften: Zustand und Verhalten. Hunde haben beispielsweise ihre eigenen Zustände (wie Name, Farbe, Fruchtbarkeit, Hunger usw.) und Verhaltensweisen (wie Schwanzwedeln). Ebenso verfügt ein Fahrrad über einen Zustand (z. B. aktueller Gang, Räder usw.) und ein Verhalten (z. B. Bremsen, Beschleunigen, Abbremsen und Gangwechsel). Durch die Beobachtung dieser Objekte können wir die objektorientierte Technologie besser verstehen.
Was bedeutet es, einen leeren C-Konstruktor-Funktionskörper zu schreiben?
Lassen Sie mich Ihnen ein Beispiel zur Veranschaulichung geben
Es gibt eine Klasse Monitor mit den Attributen String height;String
Breite
public Monitor(){}
public Monitor(String height,String width){}
Eine Konstruktormethode mit einem leeren Parameter und einer mit Parametern
In der Hauptmethode führe ich die Initialisierungsaktion durch
Monitor monitor=new Monitor();
Diese Struktur erstellt nur das Anzeigeobjekt und seine Eigenschaften haben keinen Wert. Sie können ihm auch manuell Werte zuweisen
Zum Beispiel: monitor.height=100;monitor.width=200;
Anders ist es, wenn man solche mit Ginseng verwendet, man muss sich um viel weniger Sorgen machen
Monitor monitor2=neuer Monitor("100","200");
Hier muss ich nur die Parameter eingeben, die ich direkt eingeben möchte, um meinen Attributen Werte zuzuweisen. Spart das viel Arbeit?
Das ist sein Vorteil!
Antwort abgeschlossen!
Der Konstruktor ist eine spezielle Methode, die hauptsächlich dazu verwendet wird, das Objekt beim Erstellen zu initialisieren, dh den Objektmitgliedsvariablen Anfangswerte zuzuweisen
Wird immer zusammen mit dem neuen Operator in Anweisungen verwendet, die Objekte erstellen. Eine spezielle Klasse kann über mehrere Konstruktoren verfügen. Sie können anhand der Anzahl der Parameter oder der Art der Parameter, d. h. der Überladung von Konstruktoren, unterschieden werden
Der Unterschied zwischen Konstruktor und anderen Methoden
1. Der Name des Konstruktors muss genau mit dem Klassennamen übereinstimmen, während die allgemeine Methode nicht mit dem Klassennamen identisch sein darf.
2. Die Funktion des Konstruktors wird hauptsächlich verwendet, um den Initialisierungsstatus zu definieren, wenn das Objekt der Klasse erstellt wird. Er hat keinen Rückgabewert und kann nicht mit void geändert werden. Dadurch wird sichergestellt, dass nichts automatisch zurückgegeben wird haben alle Select. Und andere Methoden haben Rückgabewerte, obwohl der Methodenkörper selbst nicht automatisch etwas zurückgibt, und diese Dinge können unsicher sein.
3. Der Konstruktor kann nicht direkt aufgerufen werden, wenn das Objekt über den neuen Operator aufgerufen wird
4. Beim Definieren einer Klasse wird normalerweise der Konstruktor der Klasse angezeigt, und die Initialisierungsarbeit kann in der Funktion weggelassen werden. Der Java-Compiler stellt einen Standardkonstruktor bereit habe diese Funktion
Einfach ausgedrückt wird der Konstruktor zum Erstellen von Objekten verwendet. Professioneller wird dies als Instanziierung von Objekten bezeichnet.
Definition:
Klasse A
{
public A(){}
}
Verwendung:
A a=new A(); //Hier ist A() der Konstruktor.
Zu beachten ist, dass der Compiler automatisch einen leeren Konstruktor generiert und jedem Mitglied der Klasse ein Standardwert zugewiesen wird, wenn in der Klasse kein Konstruktor definiert ist.
Aber wenn in der Klasse nur ein privater Konstruktor definiert ist, wird die Klasse nicht instanziiert.
Klasse A
{
string a;
private A() { }//Diese Klasse kann nicht instanziiert werden
}
Wenn wir einen Konstruktor mit Parametern definieren, aber keinen Konstruktor ohne Parameter, müssen beim Instanziieren eines Objekts dieser Klasse Parameter bereitgestellt werden.
Klasse A
{
string a;
public A(string str) {a=str }
}
Sie können das Objekt A a=new A();
nicht instanziierenKonstruktoren werden in dynamische Konstruktoren und statische Konstruktoren unterteilt.
Der dynamische Konstruktor weist einer Klasse oder Struktur bei der Instanziierung Speicherplatz zu und schließt die Initialisierung der Mitgliedsvariablen in der Klasse oder Struktur ab. Dynamische Konstruktoren können überladen sein, d. h. derselbe Konstruktorname verfügt über mehrere Konstruktoren unterschiedlichen Typs und unterschiedlicher Anzahl. Es gibt keinen wesentlichen Unterschied zwischen dem Konstruktor mit Parametern und dem Konstruktor ohne Parameter. Der Konstruktor mit Parametern kann durch die übergebenen Variablen gesteuert werden oder die Mitgliedsvariablen direkt initialisieren.
Statische Konstruktoren dürfen keine Parameter tragen, d. h. in einer Klasse ist nur ein statischer Konstruktor zulässig. Es wird vor dem ersten Zugriff auf ein statisches Mitglied oder der ersten Instanziierung eines dynamischen Objekts dieser Klasse aufgerufen.
#include
#include
using namespace std;
#define MAXLENGTH 1000
Klassen-CString
{
char m_buff[MAXLENGTH];
öffentlich:
CString(); //Konstruktor 1, auf leere Zeichenfolge gesetzt
~CString();
friend ostream& Operator
char-Operator[](int i)const;
};
CString::CString()
{
//m_buff[0]=NULL; Was meinst du?
memset(m_buff,0,sizeof m_buff); //String-Initialisierungsfunktion}
char CString::operator[](int i)const
{
return m_buff[i];
}
ostream& Operator {
return Out }
CString::~CString()
{
//delete[] m_buff; Bruder, du kannst delete nicht verwenden, ohne dass new delete dynamisch zugewiesen werden muss.
}
int main()//Im Allgemeinen schreiben Sie int
{
CString s1;
cout return 0; //Sie müssen es nicht schreiben
} Wie auch immer, es wird kein Fehler gemeldet. Ob die gewünschte Funktion realisiert werden kann, ist Ihre Sache. Der Weg zu C++ ist lang, also gehen Sie langsam.
Was ist eine Konstruktormethode in Java?
1. Der Name des Konstruktors muss genau mit dem Klassennamen übereinstimmen, in dem er definiert ist. Es gibt keinen Rückgabetyp, nicht einmal void.
2. Die Konstruktormethode wird beim Erstellen eines Objekts mit der neuen Operation aufgerufen. Die Funktion des Konstruktors besteht darin, das Objekt zu initialisieren.
3. Kann nicht durch statische, endgültige, synchronisierte, abstrakte und native Änderungen geändert werden. Konstruktoren können nicht von Unterklassen geerbt werden.
class RectConstructor{
doppelte Länge;
doppelte Breite;
doppelte Fläche(){
Rücklauflänge*Breite;
}
//Die folgende Methode ist die sogenannte Konstruktionsmethode. Sie hat keinen Rückgabewert und der Methodenname ist derselbe wie der Klassenname~~~
RectConstructor(double width,double length){//Konstruktormethode mit Parametern
this.length=length;
this.width=width;
}
}
Tatsächlich besteht die Konstruktionsmethode darin, den Mitgliedern der Klasse Anfangswerte zuzuweisen~~~~~~~~~~~~~~
Das obige ist der detaillierte Inhalt vonWarum benötigt die Object-Klasse in Java einen Nullparameter-Konstruktor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!