Dans le dernier message
Différence entre classe et instance
J'ai écrit un article.
À titre d'exemple, j'ai créé une voiture en tant que classe et créé une instance de voiture avec le nom "Benz" comme instance, mais après avoir reçu un commentaire de la personne qui a lu l'article indiquant que l'explication était approximative, j'ai écrit le contenu précédent J'écrirai un article couvert. (L'article précédent a été réduit pour permettre aux débutants d'imaginer plus facilement les classes et les instances.)
Voici la partie que vous avez soulignée.
Chaque instance a des caractéristiques différentes. Si vous fabriquez une voiture noire, certaines d'entre elles seront des voitures Toyota, d'autres seront des voitures Benz, elles seront de taille et de forme différentes, et aucune d'elles n'aura la même instance.
À cet égard,
En premier lieu, Toyota a un dessin de conception de Toyota, et Benz a un dessin de conception de Benz, et il est difficile de les rassembler dans une classe de voiture et de créer une voiture de Benz ou de Toyota à partir de là. Par exemple, dans le cas de la Prius de Toyota, l'apparence est la même, mais les instances sont différentes en termes de kilométrage et de quantité restante d'essence, et même si elles ont la même apparence (même classe, même type), les caractéristiques sont différentes pour chaque instance. C'est la différence pour chaque instance.
C'était ça. Je pensais que c'était vrai cette fois
En abordant ces trois, il est plus avancé que l'article précédent Visez à expliquer les ** classes ** et ** instances **
Les classes ont l'idée de l'héritage de classe. Si vous réécrivez la pièce de classe dans un dessin de conception, il devient "** héritage du dessin de conception **". En prenant l’article précédent comme exemple, si vous créez un dessin de conception [Car2](classe Car2) qui hérite du dessin de conception [Car](classe Car), [Car2] Le dessin de conception est
Les deux peuvent être utilisés.
Par exemple, si le dessin de conception [Car2] ci-dessus (classe Car2) est utilisé comme dessin de conception [Nissan](classe de voiture Nissan), ** La classe de voiture Nissan est automatiquement héritée par l'idée d'héritage sans écrire le contenu défini dans Voiture dans la classe (dessin de conception) **
Cette fois, nous la définirons à l'avance.
Est créé pour que la classe NissanCar_serena hérite de la classe Car. *** Nous partirons du principe qu'il est communément admis que la voiture peut rouler au sol avec un véhicule à quatre roues **.
serena
Est une voiture Nissan et la voiture de mes parents. Je vais mettre l'image pour qu'elle soit facile à imaginer. Veuillez noter que cette image n'est qu'une instance réalisée à partir d'un dessin de conception.Car.java
class Car {
static Boolean isHaving4tires = true; ///① Absolument, la voiture a quatre pneus
static Boolean canDriveOnGround = true; ///② La voiture fonctionnera certainement au sol
String name; ///③ Chaque instance a un nom différent
String color; ///④ Chaque instance a une couleur différente
Boolean isHavingWindow; ///⑤ Chaque instance peut avoir ou non une fenêtre.
public void setNameAndColor(String n, String c) {
this.name = n; ///⑥ Je vais définir le nom et la couleur de l'instance
this.color = c;
}
public void checkWindow(Boolean b) {
this.isHavingWindow = b ///⑦ Je vais définir si l'instance a une fenêtre ou non
}
}
① J'ai créé une variable de type booléen qui a 4 pneus et j'ai décidé que c'était absolument vrai. (2) J'ai créé une variable de type booléen qui peut s'exécuter sur le terrain, et j'ai décidé que c'était absolument vrai. (3) Le nom qui peut être modifié pour chaque instance est défini par une variable de type String. (4) La couleur qui peut changer pour chaque instance est définie par une variable de type String. (5) L'information «s'il y a une fenêtre ou non» qui peut changer pour chaque instance est définie par une variable de type booléen. (6) Une méthode pour définir le nom et la couleur de chaque instance a été définie. (7) Nous avons défini une méthode pour définir les informations "s'il y a une fenêtre" pour chaque instance.
Car.java
class NissanCar extends Car {
static String whichMadeByCompany = "Nissan"; ///①絶対にNissanで作成された車です
String whereBought; ///(2) Il contient des informations sur «l'endroit où il a été acheté» qui peuvent être différentes pour chaque instance.
public void setWhereBought(String w) {
this.whereBought = w; ///③ Définissez l'instance où il a été acheté.
}
}
(1) Défini où il a été créé avec une variable de type String et déterminé qu'il s'agit absolument de Nissan. (2) Les informations «où a été acheté» qui peuvent changer pour chaque instance sont définies par une variable de type String. (3) Une méthode pour définir le nom et la couleur de chaque instance a été définie.
Ceci termine la création du dessin de conception (classe).
En utilisant le dessin de conception ci-dessus (classe), je vais expliquer ce que l'on appelle une variable de classe. Qu'est-ce qu'une variable de classe?
est
Par conséquent, les variables de classe référencées dans la classe ci-dessus (dessin de conception) sont
--static Boolean isHaving4tires = true; --static Boolean canDriveOnGround = true; (L'exécution au sol signifie différentes instances mais aucun changement)
--static String whichMadeByCompany = "Nissan"; (La société qui l'a créée ne change pas même si l'instance est différente)
Nom de classe. Nom de variable de classe
Vous pouvez obtenir la valeur de la variable de classe en faisant.
Obtenons la valeur de la variable de classe en utilisant la classe ci-dessus (1) Je veux obtenir la valeur de la variable de classe ʻisHaving4tires` dans la classe Car.
Car.isHaving4tires //true
NissanCar_serena.isHaving4tires // true
→ NissanCar_serena est la destination d'héritage de la classe Car
(2) Je veux obtenir la valeur de la variable de classe whichMadeByCompany
dans la classe NissanCar_serena.
NissanCar_serena.whichMadeByCompany //" Nissan "
Qu'est-ce qu'une variable d'instance?
est. Par conséquent, la variable d'instance mentionnée dans la classe ci-dessus (dessin de conception) est
--Nom de chaîne; (ont des noms différents pour chaque instance)
--String whereBought; (Les informations sur l'endroit où l'achat a été effectué peuvent différer pour chaque instance)
ʻInstance.nom de la variable`
Obtenons la valeur de la variable d'instance en utilisant la classe ci-dessus
(1) Créez une instance de la classe Car et de la classe NissanCar_serena, définissez le nom et la couleur (voiture de Mike, rouge), et récupérez les variables d'instance name
, color
.
test.java
void test() {
Car myCar = new Car();
myCar.setNameAndColor("La voiture de Mike","rouge");
System.out.print(myCar.name); //Accédez à l'instance myCar avec le nom de la variable d'instance"La voiture de Mike"Avoir
System.out.print(myCar.color); //Accédez à l'instance myCar avec la variable d'instance color"rouge"Avoir
NissanCar_serena myCar2 = new NissanCar_serena();
myCar2.setNameAndColor("La voiture de Mike","rouge");
System.out.print(myCar2.name);//Accéder à l'instance myCar2 avec le nom de la variable d'instance"La voiture de Mike"Avoir
System.out.print(myCar2.color);//Accédez à l'instance myCar2 avec la variable d'instance color"rouge"Avoir
}
}
(2) Créez une instance de la classe NissanCar_serena, définissez les informations sur l'endroit où vous l'avez achetée et obtenez la variable d'instance whereBought
.
test.java
void test2() {
NissanCar_serena myCar2 = new NissanCar_serena();
myCar2.setWhereBought("Tokyo");
System.out.print(myCar2.whereBought);//Accédez à l'instance myCar2 avec la variable d'instance wherebought"Tokyo"Avoir
}
}
En écrivant cet article, j'ai été frappé par la ** variable d'instance de la classe héritée NissanCar_serena **.
Comme expliqué ci-dessus
** Les variables d'instance sont différentes pour chaque instance ** ** Les variables de classe sont différentes pour chaque classe **
est.
Quand j'ai essayé de définir une variable d'instance, quand j'ai imaginé la différence entre les instances de la classe NissanCar_serena, qui n'est pas en voiture, NissanCar est une voiture commerciale appelée Nissan, tandis que la classe Car est toujours commerciale ou non. Puisqu'il est inconnu, utilisez la différence pour définir où il a été acheté,
public String whereBought = "";
A été défini. La possibilité est très petite, mais il est possible que les gens qui construisent une voiture à partir de zéro et l'utilisent pour eux-mêmes (rires) Cependant, si vous avez une classe en tant que dessin de conception et que l'on vous demande si vous devez définir les informations «où elle a été achetée» comme variable, vous ne pouvez rien dire. .. ..
Également défini dans la classe Car
public Boolean isHavingWindow;
Concernant la variable d'instance, j'aimerais que vous imaginiez l'image suivante.
Merci pour la navigation. Je vous serais reconnaissant si vous pouviez commenter si vous en avez.
Recommended Posts