Maison >tutoriels informatiques >connaissances en informatique >Pourquoi la classe Object nécessite-t-elle un constructeur à paramètre nul en Java ?
Les autres classes n'ont pas besoin de définir explicitement des constructeurs sans paramètre car elles héritent de la classe Object et héritent donc de la méthode constructeur Object.
Object est la classe parent de toutes les classes, aucune autre classe n'en hérite, elle doit donc avoir un constructeur sans argument pour l'instanciation.
Java est un langage de programmation orienté objet multiplateforme offrant une excellente polyvalence, efficacité, portabilité de la plateforme et sécurité. Il est largement utilisé dans les PC, les centres de données, les consoles de jeux, les superordinateurs scientifiques, les téléphones mobiles et Internet. Dans le même temps, Java possède la plus grande communauté professionnelle de développeurs au monde, fournissant une base solide pour son développement et son innovation ultérieurs.
Les objets objets sont souvent utilisés pour imiter certains objets qui nous entourent dans le monde réel.
Un objet logiciel est un modèle d'un objet du monde réel qui a un état et un comportement. L'état est maintenu via des variables nommées par les identifiants de l'utilisateur. Les méthodes sont des fonctions associées à un objet qui exécutent le comportement de l'objet. Par conséquent, un objet logiciel est un modèle qui maintient l’état via des variables et exécute un comportement via des méthodes.
Les objets sont la clé pour comprendre la technologie orientée objet. Avant d'apprendre, vous pouvez observer des objets réels comme des chiens, des tables, des téléviseurs, des vélos, etc. Ces objets ont deux caractéristiques en commun : l’état et le comportement. Par exemple, les chiens ont leurs propres états (comme le nom, la couleur, la fertilité, la faim, etc.) et les comportements (comme remuer la queue). De même, un vélo a un état (comme le rapport actuel, les roues, etc.) et un comportement (comme le freinage, l'accélération, la décélération et le changement de vitesse). En observant ces objets, nous pouvons mieux comprendre la technologie orientée objet.
L'instanciation des objets et l'initialisation des données sont généralement effectuées via des constructeurs. En Java, toutes les classes héritent de la classe Object, donc le constructeur de paramètres vides de la classe Object est hérité par défaut. Cela signifie que même si vous n’écrivez pas de constructeur nul, il existe toujours. Cependant, les constructeurs paramétrés sont généralement écrits par les développeurs eux-mêmes. Le constructeur paramétré fonctionne de manière similaire au constructeur à paramètres vides, mais il peut recevoir des paramètres et effectuer certaines opérations d'initialisation spécifiques. Par conséquent, les constructeurs paramétrés permettent plus de flexibilité dans l’initialisation des données d’un objet. En résumé, le constructeur de paramètres vides est le constructeur par défaut hérité de la classe Object, tandis que le constructeur paramétré est écrit par le développeur lui-même et peut recevoir des paramètres et effectuer des opérations d'initialisation spécifiques.
Laissez-moi vous donner un exemple pour illustrer
Il existe une classe Monitor qui a les attributs String height;String
largeur
Moniteur public(){}
Moniteur public (hauteur de chaîne, largeur de chaîne){}
Une méthode constructeur avec un paramètre vide et un avec des paramètres
Dans la méthode principale, je fais l'action d'initialisation
Moniteur moniteur=nouveau moniteur();
Cette structure crée uniquement l'objet d'affichage et ses propriétés n'ont aucune valeur. Vous pouvez également lui attribuer manuellement des valeurs
.Par exemple : monitor.height=100;
monitor.width=200;
C'est différent si vous utilisez ceux avec du ginseng, il y a beaucoup moins de soucis
Moniteur moniteur2=nouveau moniteur("100","200");
Ici, il me suffit de mettre directement les paramètres que je souhaite mettre pour attribuer des valeurs à mes attributs. Est-ce que cela économise beaucoup de travail ?
C'est son avantage !
Réponse terminée !
Le constructeur est une méthode spéciale qui est principalement utilisée pour initialiser l'objet lors de sa création, c'est-à-dire attribuer des valeurs initiales aux variables membres de l'objet
Toujours utilisé avec l'opérateur new dans les instructions qui créent des objets. Une classe spéciale peut avoir plusieurs constructeurs. Ils peuvent être distingués en fonction du nombre de paramètres ou du type de paramètres, c'est-à-dire de la surcharge des constructeurs.
La différence entre le constructeur et les autres méthodes1. Le nom du constructeur doit être exactement le même que le nom de la classe ; tandis que la méthode générale ne peut pas être la même que le nom de la classe.
2. La fonction du constructeur est principalement utilisée pour définir l'état d'initialisation lors de la création de l'objet de la classe. Il n'a pas de valeur de retour et ne peut pas être modifié avec void. Cela garantit non seulement qu'il ne renvoie rien automatiquement, mais qu'il ne peut pas non plus être modifié. avoir n'importe quel Select. Et d'autres méthodes ont des valeurs de retour. Même s'il s'agit d'une valeur de retour vide, bien que le corps de la méthode lui-même ne renvoie rien automatiquement, vous pouvez toujours le laisser renvoyer quelque chose, et ces choses peuvent être dangereuses.
3. Le constructeur ne peut pas être appelé directement. Il doit être automatiquement appelé lorsque l'objet est créé via l'opérateur new. La méthode générale est appelée lorsque le programme est exécuté.
4. Lors de la définition d'une classe, le constructeur de la classe sera généralement affiché et le travail d'initialisation peut être omis dans la fonction. Le compilateur Java fournira un constructeur par défaut sans paramètres. avoir cette fonctionnalité
De manière simple, le constructeur est utilisé pour créer des objets. De manière plus professionnelle, on parle d'instanciation d'objets.
Définition :
classe A
{
public A(){}
}
Utilisation :
A a=new A(); //Ici, A() est le constructeur.
Une chose à noter est que si aucun constructeur n'est défini dans la classe, le compilateur générera automatiquement un constructeur vide et chaque membre de la classe se verra attribuer une valeur par défaut.
Mais si seul un constructeur privé est défini dans la classe, alors la classe ne sera pas instanciée.
classe A
{
chaîner un ;
private A() { }//Cette classe ne peut pas être instanciée
}
Si nous définissons un constructeur avec des paramètres mais pas un constructeur sans paramètres, alors les paramètres doivent être fournis lors de l'instanciation d'un objet de cette classe.
classe A
{
chaîner un ;
public A(chaîne str) {a=str; }
}
Vous ne pouvez pas instancier l'objet A a=new A();
Les constructeurs sont divisés en constructeurs dynamiques et constructeurs statiques.
Le constructeur dynamique alloue de l'espace mémoire à une classe ou une structure lorsqu'elle est instanciée et termine l'initialisation des variables membres dans la classe ou la structure. Les constructeurs dynamiques peuvent être surchargés, c'est-à-dire que le même nom de constructeur comporte plusieurs constructeurs de types et de numéros différents. Il n'y a pas de différence essentielle entre le constructeur avec paramètres et le constructeur sans paramètres. Le constructeur avec paramètres peut être contrôlé par les variables passées ou initialiser directement les variables membres. Dans le constructeur, la valeur par défaut peut être initialisée pour les variables membres.
Les constructeurs statiques ne sont pas autorisés à transporter des paramètres, c'est-à-dire qu'un seul constructeur statique est autorisé dans une classe. Il est appelé avant le premier accès à un membre statique ou la première instanciation d'un objet dynamique de cette classe.
#inclure
#inclure
en utilisant l'espace de noms std;
#définir MAXLENGTH 1000
classe CString
{
char m_buff[MAXLENGTH];
public :
CString(); //Constructeur 1, défini sur une chaîne vide
~CString();
friend ostream& Operator)
opérateur char[](int i)const;
};
CString::CString()
{
//m_buff[0]=NULL; Que veux-tu dire
memset(m_buff,0,sizeof m_buff); //Fonction d'initialisation de chaîne
}
char CString::operator[](int i)const
{
retour m_buff[i];
}
ostream& opérateur
{
retour
}
CString::~CString()
{
//delete[] m_buff; Frère, vous ne pouvez pas utiliser delete sans que la suppression ne soit allouée dynamiquement.
}
int main()//Écrivez généralement int
{
CString s1;
cout
return 0 ; //Vous n'avez pas besoin de l'écrire
} Quoi qu'il en soit, aucune erreur n'est signalée. Quant à savoir si la fonction que vous souhaitez peut être réalisée, c'est votre affaire. Le chemin vers le C++ est long, alors marchez lentement !
La méthode de construction est une méthode particulière, qui est différente de la méthode générale :
1. Le nom du constructeur doit être exactement le même que le nom de la classe dans laquelle il est défini. Il n'y a pas de type de retour, pas même void.
2. La méthode constructeur est appelée en utilisant la nouvelle opération lors de la création d'un objet. La fonction du constructeur est d'initialiser l'objet.
3. Ne peut pas être modifié par statique, final, synchronisé, abstrait et natif. Les constructeurs ne peuvent pas être hérités par les sous-classes.
classe RectConstructor{
double longueur ;
double largeur;
double zone(){
longueur de retour*largeur ;
}
//La méthode suivante est ce qu'on appelle la méthode de construction. Elle n'a pas de valeur de retour et le nom de la méthode est le même que le nom de la classe~~~
RectConstructor(double width,double length){//Méthode Constructeur avec paramètres
this.length=length;
this.width=largeur;
}
}
En fait, la méthode de construction consiste à attribuer des valeurs initiales aux membres de la classe~~~~~~~~~~~~~~
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!