[JAVA] A quoi sert le constructeur?

Qu'est-ce qu'un constructeur?

Avec une méthode spéciale qui est automatiquement exécutée lors de la création d'une instance ** Vous pouvez contrôler librement l'état initial de l'instance! ** **

Cela dit, exécutons réellement le code.

Et s'il n'y a pas de constructeur?

** La valeur par défaut pour chaque type est entrée dans la valeur ** Par exemple, supposons que vous ayez un programme qui récupère les informations client.

	//Définir les informations client
	class CustomerCard {
		int id; //N ° de client
		String name; //Nom du client
	}

	class CustomerManager {
		public static void main(String[] args) {
			CustomerCard out = new CustomerCard(); //Création d'instance
			System.out.println(out.id); //Identifiant client de sortie
			System.out.println(out.name); //Nom du client de sortie
		}
	}

Quand je fais cela, le résultat est:

0 //N ° de client
null //Nom du client

Pourquoi cela arrive

Lorsqu'une classe est instanciée (nouvelle), les variables membres qui ne contiennent aucune valeur sont automatiquement initialisées. N'oubliez pas qu'il existe une règle selon laquelle les types numériques tels que int sont initialisés à 0, les types booléens sont initialisés à false et les types de référence tels que String sont initialisés à null.

Essayez de mettre un constructeur

Mettons le constructeur dans le programme précédent, définissons le ** état initial ** et exécutons-le.

	class CustomerCard {
		int id; //N ° de client
		String name; //Nom du client

	//**Définir la valeur initiale dans le constructeur**
	CustomerCard() {
			this.id = 1111;
			this.name = "taylor";
		}
	}

	class CustomerManager {
		public static void main(String[] args) {
			CustomerCard out = new CustomerCard(); //Création d'instance
			System.out.println(out.id); //Identifiant client de sortie
			System.out.println(out.name); //Nom du client de sortie
		}
	}

Le résultat est le suivant.

1111 //N ° de client
taylor //Nom du client

Ouais, la valeur spécifiée dans le constructeur est la valeur initiale. Ce serait bien de comprendre à peu près que le constructeur peut définir la valeur initiale de l'instance comme ceci.

Recommended Posts

A quoi sert le constructeur?
Qu'est-ce qu'un constructeur
À quoi sert le modèle de façade?
Quel est le modificateur volatile pour les variables Java?
Quelle est la méthode pluck?
[Ruby] À quoi sert «!!»?
Quelle est la méthode d'initialisation?
'% 02d' Quel est le% de% 2?
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Spring Autowired est écrit dans le constructeur
Quel est le meilleur type de données de migration? ??
Qu'est-ce que Keycloak
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
Qu'est-ce que maven?
Qu'est-ce que Jackson?
[Pour les débutants en programmation] Qu'est-ce qu'une méthode?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Quelle est la meilleure lecture de fichier (Java)
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
[Pour les super super débutants] Qu'est-ce que l'orientation objet?
Qu'est-ce que la façade? ??
Quel est le test de code de test de modèle
Qu'est-ce que Java <>?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Quelle est la méthode principale en Java?
Qu'est-ce que 'java
Quelle est la structure des données d'ActionText?
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~
Qu'est-ce que le modèle Java Servlet / JSP MVC?
Ce qui est différent du langage PHP. [Remarque]
Quelle est la différence entre SimpleDateFormat et DateTimeFormatter? ??
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?
Qu'est-ce que vue cli
Qu'est-ce qu'une interface
Qu'est-ce que le moi de Ruby?
Qu'est-ce que le codage en dur?
Qu'est-ce qu'un flux
Qu'est-ce que l'attr_accessor de Ruby?
Qu'est-ce que l'encapsulation Java?
Qu'est-ce qu'une permission refusée?
Qu'est-ce que le contrôle d'instance?
Qu'est-ce qu'un initialiseur?
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un opérateur?