<! - La version Java est 1.8.0_161. J'ai utilisé Sublime Text 3 comme éditeur. -> <! - J'ai appris qu'il existe deux types de Java, les méthodes de classe et les méthodes d'instance. -> Quand j'apprenais juste Java, "En instanciant une classe, vous pouvez utiliser les variables de la classe." Je pense que c'est souvent enseigné.
Cependant, si vous écrivez static lors de la déclaration d'une variable, vous pouvez utiliser cette variable sans instancier la classe.
Dans cet article, je vais vous montrer pourquoi certaines variables peuvent être utilisées sans instanciation.
Les variables de classe sont des variables qui peuvent être utilisées sans instanciation. Les variables de classe sont utiles lorsque vous avez besoin d'une variable commune à chaque objet instancié et créé. Aussi, lors de l'utilisation de variables de classe
(nom de la classe).(Nom de la variable de classe)
ça ira. On a l'impression que c'est une propriété de la classe.
D'autre part, lors de l'utilisation de variables d'instance
(Nom de l'instance).(Nom de la variable d'instance)
ça ira. On a l'impression qu'il appartient à l'instance.
Par exemple, considérons la classe Circle, qui calcule l'aire d'un cercle lorsque vous entrez un rayon.
Chaque fois que vous entrez un rayon, un objet de type Cercle sera créé. Chaque objet a son propre rayon comme variable d'instance. Cependant, lors du comptage du nombre d'objets créés, il est utile d'avoir des variables appartenant à la classe plutôt que des variables d'instance appartenant à chaque objet.
Main.java
public class Main{
public static void main(String args[]){
for (int i = 0; i < args.length; i++){ //Entrez le rayon dans l'argument de ligne de commande
double r = Double.parseDouble(args[i]);
Circle circle = new Circle(r); //Création d'objet de type Circle
System.out.println("Area : " + circle.getArea());
}
System.out.println("The number of Circle objects : " + Circle.numberOfCircles);
}
}
Circle.java
public class Circle{
private double radius; //Rayon du cercle
private double area; //Zone du cercle
public static int numberOfCircles = 0; //Variable de classe (représentant le nombre d'objets Circle)
public Circle(double r){
radius = r;
numberOfCircles++; //Incrémenté chaque fois qu'un objet de type Circle est créé
}
public double getArea() {
return Math.pow(radius, 2) * 3.14;
}
}
Si vous exécutez Main.java comme suit, ...
java Main 3 4 5 6
Le résultat de l'exécution est
Area : 28.26
Area : 50.24
Area : 78.5
Area : 113.04
The number of Circle objects : 4
Ce sera.
Les variables de classe sont accessibles en commun par chaque objet instancié. Je pense que c'est difficile à transmettre dans l'exemple terne ci-dessus. ..
Nous prévoyons d'apporter des corrections et des ajouts au besoin. 2018/09/09: Ajout d'une méthode pour renvoyer la zone à la classe Circle.
<! - Oracle's The Java TM </ sup> Tutorials déclare: C'était fait. La traduction japonaise est suspecte, mais pardonnez-moi s'il vous plaît ...
Si plusieurs objets sont créés à partir de la même classe, chacun aura une variable d'instance différente. Dans le cas de la classe de vélo, la vitesse à laquelle la pédale est tournée, le rapport, la vitesse, etc. sont répertoriés comme variables d'instance. Chaque objet en forme de bicyclette a sa propre valeur pour ces variables et est stocké dans une adresse mémoire différente.
Lorsque vous avez besoin d'une variable commune à tous les objets, vous pouvez ajouter le modificateur statique. Les champs auxquels le modificateur static est ajouté lorsqu'ils sont déclarés sont appelés champs statiques ou variables de classe. Ceux-ci sont associés à la classe plutôt qu'à chaque objet. (Omis ci-dessous)
Je suis désolé, mais comme cela semble long, je n'ai présenté que le début. ->
Recommended Posts