[JAVA] Ne pas être un oncle statique

introduction

Maintenant que j'ai appris un peu de Java, j'aimerais écrire sur les modificateurs statiques. Cet article est l'article du 20e jour du SLP_KBIT Partie 2 Calendrier de l'Avent 2016 - Qiita.

Veuillez signaler toute erreur.

Qu'est-ce que l'oncle statique

Certaines personnes font un usage intensif de static car les méthodes statiques peuvent être appelées directement depuis la classe sans créer d'instance. Ces personnes peuvent ou non être appelées «oncle statique».

Qu'est-ce que statique

Si vous ajoutez un modificateur statique à une méthode ou à une variable membre, il devient une méthode statique ou une variable statique. Ce qui change avec le modificateur static, c'est que vous pouvez accéder à la méthode et aux variables membres sans nouveau. En d'autres termes, statique est ・ Lors de la définition d'une méthode commune -Lors de la définition des propriétés communes ・ Lorsque vous souhaitez partager des propriétés communes entre plusieurs classes C'est un modificateur utilisé pour.

Pourquoi vous ne devriez pas abuser de l'électricité statique

Il y a plusieurs raisons à cela, mais par exemple, les méthodes et les variables statiques affecteront tout ce qui est référencé ailleurs si la valeur de la variable est modifiée à un seul endroit. Par conséquent, abuser de l'électricité statique peut prêter à confusion.

Comment utiliser la statique

Méthode de propriété non statique

Expliquons en regardant le code.

Human.java



public class Human {
	private String name;
	private int satiety;	//Satiété
	
	public Human(String name, int satiety) {
		this.name = name;
		this.satiety = satiety;
	}
	
	public void eat(int amountfood) {
		this.satiety += amountfood;
	}
}

Le code ci-dessus est une classe Human pour créer un objet humain. Cette classe a deux propriétés et deux méthodes, qui sont toutes des propriétés et des méthodes non statiques. Les méthodes de propriété non statiques sont spécifiques à l'instance. Le "nom" est unique à l'instance car ce n'est pas que les "humains" ont un nom commun, mais que chaque "individu" l'a. De plus, «la faim» et «l'action de manger» sont également portées et prises individuellement par chaque personne, de sorte qu'elles sont uniques à l'instance.

Méthode de propriété statique

Maintenant, ajoutons une propriété statique à la classe Human.

Human.java



public class Human {
	static int count_Human = 0;
	private String name;
	private int satiety;	//Satiété
	
	Human(String name, int satiety) {
		this.name = name;
		this.satiety = satiety;
		count_Human++;
	}
	
	public void eat(int amountfood) {
		this.satiety += amountfood;
	}
}

Ajout de la propriété statique "Nombre de personnes". Lorsque la méthode humaine est appelée, elle augmente le "nombre de personnes". Alors pourquoi le «nombre de personnes» est-il statique? C'est parce que "nombre de personnes" est une propriété spécifique à une classe, pas une propriété spécifique à une instance. Quel est le «nom» d '«humain»? Je ne comprends pas. Parce que le «nom» appartient à «l'individu». Alors, quel est le «nombre de personnes» des «humains»? Vous pouvez répondre à la question. Parce que le "nombre de personnes" est une propriété de la classe "humaine". De cette façon, utilisez static lorsque vous souhaitez créer des propriétés et des méthodes spécifiques à une classe.

Résumé

La statique est utile, mais les abus peuvent être déroutants si les valeurs ne correspondent pas ou si vous ne savez pas quel code vous avez écrit. Alors, utilisons bien la statique et faisons de notre mieux pour ne pas devenir un oncle statique.

Citation: [Java] Qu'est-ce que statique?

Recommended Posts

Ne pas être un oncle statique
Faut-il encore apprendre Java?
Ne pas être un oncle statique
Il semble y avoir un mot «de-Java».
Minecraft BE Tap avec une épée en bois pour sauter
Erreur Docker: le service doit être un mappage et non un type Aucun.
Rechercher une instruction Switch qui peut être convertie en une expression Switch
Convertir un tableau potentiellement nul en flux
Une collection de modèles dont vous voulez être conscient pour ne pas compliquer le code
Comment laisser un commentaire
Passez des variables à Scope.
[java] Raisons d'utiliser statique
OkHttp3 devrait être singleton
20 Correspond aux appels de méthode statiques
Pour écrire un programme orienté utilisateur (1)
Que faire à propos de l'erreur "Impossible de lire ou n'est pas un fichier ZIP valide"
Comment insérer une vidéo
Comment créer une méthode
Next () de Resultset n'est pas une "méthode pour déterminer s'il y a un ResultSet next".
Transfert de fichiers vers un environnement virtuel qui n'a pas pu être résolu même après avoir essayé pendant une journée: Mémorandum