2017-08-28 4 views
-1

J'ai créé ma classe (extension d'activité) avec un attribut int a.
L'attribut est automatiquement initialisé à 0 dans la méthode onCreate().Attribut initialisé dans onCreate()

Est-ce normal?

+1

si vous ne donnez pas une valeur à 'attribut int', il est initialisées au moment de la construction de la valeur par défaut' 0'. La méthode du cycle de vie de l'activité 'onCreate (...)' est invoquée plus tard, donc si vous n'êtes pas attribuons une valeur 'onCreate (...)', la valeur par défaut est utilisée. – matoni

Répondre

2

Ceci est normal. Vous voyez, "int" est un type primitif. Ce n'est pas un objet, et donc, il ne peut pas contenir une valeur "nulle". Si vous voulez que votre variable soit nulle à onCreate(), vous devez changer son type pour la représentation de l'objet. La classe "Integer" représente le type primitif "int".

1

dans la méthode onCreate().

Non, il n'est pas initialisé en onCreate(). Il est initialisé lorsque l'objet de votre classe est instancié.

Oui il est. Variable de type primitif est int ne peut contenir que des valeurs numériques et à moins que vous lsinitialisez autrement il sera attribué 0 (contrairement à savoir Integer qui peut aussi être null).

Voir docs:

https://docs.oracle.com/javase/tutorial/java/javaOO/index.html https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html