Pour tous ceux qui ont commencé à étudier Java en tant que nouvel employé Je voudrais le mettre à jour de manière irrégulière.
Le thème cette fois est "Comment écrire une classe".
Le premier est la forme de base de la classe. À titre d'exemple, considérons une classe qui représente une «personne».
public class Person {
/**Nom complet*/
private String name;
/**âge*/
private int age;
/**
*constructeur
* @nom du paramètre nom complet
* @âge param
*/
public Person(String name, int age) {
this.name = name;
this.age = age;
}
/**
*Obtenir de l'âge
*/
public int getAge() {
return this.age;
}
/**
*Obtenez un an
*/
public void countUpAge() {
this.age++;
}
/**
*Auto-introduction
*/
public void introduction() {
System.out.println("Bonjour, je" + this.name + ", " + this.age + "Je suis vieux.");
}
}
Non limité aux classes introduites cette fois Les classes sont à peu près divisées en trois sections.
nom de classe publique{
champ
constructeur
Méthode
}
Dans la classe Person, il fait référence aux parties suivantes.
/**Nom complet*/
private String name;
/**âge*/
private int age;
Les champs sont des ** variables ** qui peuvent être utilisées n'importe où dans la classe. En d'autres termes, vous pouvez faire référence à la même variable à partir de différentes méthodes au sein de la même classe.
Dans la classe Person, il fait référence à la partie suivante.
/**
*constructeur
* @nom du paramètre nom complet
* @âge param
*/
public Person(String name, int age) {
this.name = name;
this.age = age;
}
Au fait, lors de l'initialisation de cette classe Person, le code sera le suivant.
Person person = new Person("Taro", 10);
De cette façon, le constructeur est utilisé pour effectuer certaines actions au début.
Lors de l'initialisation d'un objet, le constructeur est toujours appelé, donc Il est souvent utilisé pour définir des valeurs de champ.
Dans la classe Person, il fait référence à la partie suivante.
/**
*Obtenir de l'âge
*/
public int getAge() {
return this.age;
}
/**
*Obtenez un an
*/
public void countUpAge() {
this.age++;
}
/**
*Auto-introduction
*/
public void introduction() {
System.out.println("Bonjour, je" + this.name + ", " + this.age + "Je suis vieux.");
}
La méthode décrit le processus à exécuter.
La méthode est utilisée pour assembler un processus.
Vous pouvez mettre tout le traitement ensemble, Il est plus facile pour les gens de voir si vous divisez chaque procédure séparément.
Vous pouvez donner un nom à la méthode, donc Il est important de bien les répartir selon le but et les variables à traiter.
La forme de base de la méthode est la suivante.
Qualificateur d'accès Type de retour Nom de la méthode(Argument 1,Argument 2, ...) {
En traitement
return Valeur de retour;
}
Vous souvenez-vous avoir entendu le mot «fonction» pendant le temps des mathématiques?
f(x) = x + 1
Si cela est converti en une méthode Java, la description sera la suivante.
public void func(x) {
return x + 1;
}
Les deux sont "retour en ajoutant 1 à l'argument x".
En fait, «méthodes» et «fonctions» sont très proches les unes des autres et désignent à peu près la même chose. Par exemple, en langage C, la description suivante est appelée une fonction.
int func(x) {
return x + 1;
}
Dans les langages de pensée objet tels que Java, la description d'une fonction décrite dans une classe est appelée une méthode.
Je voudrais expliquer la différence exacte entre les fonctions et les méthodes à un autre moment.
Le modificateur d'accès définit la mesure dans laquelle le champ ou la méthode est accessible. Il est spécifié comme public ou privé.
Si public est donné, il sera accessible de l'extérieur de la classe, Avec prvate, vous ne pouvez y accéder qu'à partir de cette classe.
À titre d'exemple, dans le cas suivant, une méthode appelée ** getAge ** qui renvoie ** int (valeur numérique) ** est définie.
public int getAge() {
return this.age;
}
En spécifiant le type de cette valeur de retour, l'appelant de cette méthode est Vous pouvez reconnaître que "cette méthode renvoie un type int".
//Vous pouvez avoir l'âge d'une personne comme celle-ci
int himAge = person.getAge();
//Cela entraînera une incompatibilité de type et une erreur
String himAge = person.getAge();
S'il n'y a pas de valeur de retour, définissez le caractère "void" dans la partie valeur de retour. void signifie "vide / rien".
Si void est spécifié pour la valeur de retour, aucune valeur n'est renvoyée, il n'est donc pas nécessaire de décrire return.
/**
*Obtenez un an
*/
public void countUpAge() {
this.age++;
//Vous pouvez omettre le «retour» qui devrait être ici.
}
Maintenant, ajoutons la "méthode pour définir le nom".
Les prénoms incluent les prénoms et les noms, et parfois les prénoms. Créons une méthode de définition de nom correspondant à chacun.
/**
*Méthode de prise en charge du prénom et du nom
* @param lastName Nom
* @param firstName prénom
*/
public void setName(String lastName, String firstName) {
this.name = lastName + " " + firstName;
}
/**
*Méthode pour le deuxième prénom
* @param lastName Nom
* @param firstName prénom
* @param middleName deuxième prénom
*/
public void setName(String lastName, String firstName, String middleName) {
this.name = firstName + "・" + middleName + "・" + lastName;
}
Maintenant, faisons chacun de ces.
person.setName("Sato", "Taro");
// ->«Taro Sato»
person.setName("Sato", "Christina", "Taro");
// ->«Taro, Christina, Sato»
De cette façon, vous pouvez faire différentes choses avec la même méthode nommée "setName".
Ceci est appelé ** "surcharge de méthode" **.
La surcharge peut être utilisée lorsque vous avez plusieurs arguments dans le même but.
Je pense qu'il y a pas mal de gens qui disent: «Je ne comprends pas parce qu'il y a tellement de choses dans la classe».
Cependant, il n'y a pas beaucoup de règles à retenir.
Le code source sera plus facile à lire simplement en le divisant en trois éléments introduits cette fois.
Sans essayer de tout lire d'un coup N'est-ce pas le premier pas vers la compréhension de penser séparément petit à petit?
Recommended Posts