[Débutant] Points à surveiller après les exercices Java / Héritage / Méthode abstraite [Note 26]

Pratique Java (orienté objet)

Encapsulation

Lors de l'écriture d'un champ d'instance avec "privé" Puisqu'il peut être manqué par le getter et qu'une erreur s'est produite Soyez prudent d'écrire dans une habitude.

printData -Même s'il n'y a aucune instruction, vous pouvez créer une méthode d'instance pour la sortie de vous-même. Être capable d'écrire. Je veux garder à l'esprit le style d'écriture qui est facile à voir pour tout le monde.

-Après avoir écrit en privé, au lieu de sortir dans Main.java Lors du regroupement de la sortie avec printData, elle est dans la même classe, donc au lieu de getName etc. Si vous l'écrivez avec this.name etc., vous pouvez l'écrire de manière concise, alors souvenez-vous-en.

Apprentissage Java

Héritage

J'avais l'habitude d'utiliser deux classes dans les exercices jusqu'à présent Il y a eu une duplication de code dans la classe. La duplication doit être évitée car elle sera difficile à corriger et à améliorer.

A ce moment, une méthode d'héritage du contenu d'une classe peut être utilisée. C'est ce qu'on appelle l'héritage.

La classe d'origine est appelée "super classe" La classe héritée est appelée une "sous-classe".

Comment hériter

Lors de la première définition dans une sous-classe

nom de sous-classe de classe étend le nom de superclasse{...

Écrivez sous la forme de.

class Vehicle{
 ...
 public void setName(String name){...
 }
 public void setColor(String color){...
 }
}

//Main.En java
class Main{
 public static void main(String[]args){
  Car car = new Car();
  car.setName("Ferrari");
  car.setColor("rouge");
...
}
}

Lorsque vous appelez réellement une méthode, écrivez comme ci-dessus. (Un cas)

Personnaliser les sous-classes

Le carburant de la classe de voiture utilisé jusqu'à présent n'est pas dans d'autres classes Puisqu'il s'agit d'un produit unique, il doit être personnalisé dans la catégorie Car.

class Car extends Vehicle{
 private int fuel = 50;
 public int getFuel(){
  return this.fuel;
 }

Lorsque vous l'appelez, appelez-le avec car.getFuel ();. (J'obtiens une erreur avec vehicle.getFuel ();)

super() Comment appeler un constructeur de superclasse dans une sous-classe [Exemple 1]

//Super classe
class Vehicle{
 Vehicle(){
  System.out.println("Super classe");
 }

//Classe de voiture
class Car extends Vehicle{
 Car(){
 super();
 }
}

//Classe principale
class Main{
 public static void main(String[]args){
  Car car = new Car();
  ...
 }
}

Dans ce qui précède, la sortie sera "super classe". [Exemple 2]

//Tout d'abord, définissez le constructeur dans la super classe.
class Vehicle{
 private String name; ...

 Vehicle(String name,String color){
  this.name = name;
  this.color = color;
 }

//Appelez le constructeur de classe Car / constructeur de classe Super
class Car extends Vehicle{
 Car(String name,String color){
  super(name,color); //N'oubliez pas de passer l'argument.
 }
}

protected Lors de l'utilisation de super classes et sous-classes Pour les champs qui utilisent private comme avant L'accès à partir des sous-classes ne peut pas être effectué tel quel. J'utilisais des getters et des setters, mais quand j'utilise [protected] Permet l'accès depuis les sous-classes et au sein de la classe.

・ Public → Accessible de n'importe où ・ Privé → Accessible uniquement à partir de cette classe ・ Protégé → accessible depuis la classe et la sous-classe

Méthode abstraite

Jusqu'à présent, les sous-classes de voitures et de vélos de la super classe des véhicules Je l'ai résumé, mais quand il y a des méthodes avec des contenus différents (par exemple, run class) Utilisez des méthodes abstraites.

class Vehicle{ ..
 abstract public void run(int distance);
//Définissez ici une méthode abstraite. Je n'écrirai pas le traitement après ça!

Après cela, un écrasement est requis dans chaque sous-classe.

à partir de maintenant

Je n'écris pas vraiment de méthodes abstraites, donc j'ai l'impression de ne pas comprendre grand-chose. Je voudrais faire un examen complet de Java une fois et le créer sous forme de page. Pour diverses raisons, il est préférable de toucher PHP le plus tôt possible, alors avant cela, passons à l'apprentissage de PHP.

Recommended Posts

[Débutant] Points à surveiller après les exercices Java / Héritage / Méthode abstraite [Note 26]
Points à prendre en compte lors de l'écriture de Java
[Java] Éléments à prendre en compte lors de la sortie de FizzBuzz
[Java Silver] Ce qu'il faut savoir concernant les instructions switch
Éléments à prendre en compte lors de l'écriture de code en Java
[Java] Points à noter avec Arrays.asList ()
Être conscient du code facile à lire
[Débutant] Méthode / classe / bibliothèque externe Java [Note 23]
Résumer le cycle de vie des objets Java à prendre en compte dans le développement Android
[Java] Attention aux courts-circuits (évaluation des courts-circuits)
Le servlet Java doit être conscient de l'environnement multithread
Exercices pour les débutants Java
[Débutant] Méthode / encapsulation de champ de classe Java (getter setter) [Note 25]
Règles de base à connaître pour écrire du code facile à lire
[Débutant] Orienté objet Java / champ d'instance / méthode d'instance / surcharge [Note 24]
Modificateur abstrait Java [Note]
Méthode de paramétrage pour lier Java d'Eclipse et Github / septembre 2017
Assurez-vous de comparer le résultat Java compareTo avec 0
[Java débutant] Conversion d'une chaîne de caractères en valeur numérique - Quelle est la méthode parseInt de la classe Integer? ~