C'est un article ennuyeux, mais il est idéal pour les débutants à étudier car il utilise des paramètres de type dans le code court et utilise super et cela correctement, et il montre également la valeur de l'héritage propre à la programmation orientée objet. C'est un contenu avec lequel vous pouvez faire l'expérience.
Dans ʻArrayList de java, ʻelement
peut être stocké comme l'élément ʻindex e en utilisant la méthode
set (index int, élément T). Cependant, si vous faites cela lorsque le nombre d'éléments est ʻindex
ou moins, java.lang.IndexOutOfBoundsException
se produira.
C'est sobre et gênant.
J'ai écrit une classe enfant ʻAL
Le code ressemble à ceci:
AL.java
class AL<T> extends java.util.ArrayList<T>
{
private T filler = null;//※
void fillBy(T filler){this.filler = filler;}
//Remplissez de remplissage quand il semble être placé dans un endroit qui n'existe pas
public T set(int index, T element)
{
if(filler!=null) while(this.size() <= index) this.add(filler);
return super.set(index, element);
}
//La même chose est vraie pour obtenir
public T get(int index)
{
if(filler!=null) while(this.size() <= index) this.add(filler);
return super.get(index);
}
}
filler
par défaut, définissez l'initialiseur de la classe enfant.
{this.filler = (remplissage par défaut);}
Doit être. Dans ce cas, le modificateur d'accès doit être protégé au lieu de privé.échantillon.
Main.java
class Main
{
public static void main(String...args)
{
AL<String> al = new AL<>();
al.add("indigenous");
//al.fillBy("I filled.");
al.set(3, "immigration");
for(String s : al)
System.out.println(s);
}
}
À ce rythme, une exception se produira et cela ne fonctionnera plus comme avant.
Cependant, lorsque la méthode commentée fillby
est activée, aucune exception n'est déclenchée et ce qui suit est affiché.
indigenous
I filled.
I filled.
immigration
Recommended Posts