Java la définition ou l'initialisation des attributs d'une classe
Est-il une différence entre définition attributs de classe et initialisation? Existe-il des cas où vous voulez le faire l'un sur l'autre?
Exemple:
Les extraits de code suivant devrait montrer la différence que je veux dire. Je suis à l'aide d'une primitive de l'objet:
import Java.util.Random;
public class Something extends Activity {
int integer;
Random random = null;
Something(){
integer = 0;
random = new Random();
....
vs
import Java.util.Random;
public class Something extends Activity {
int integer = null;
Random random;
Something(){
integer = 0;
random = new Random();
....
Je voudrais la liste des variables au niveau de la classe et de les initialiser avec un constructeur.
aussi, vous êtes à essayer de passer pour une nulle à une primitive qui pourrait causer quelques maux de tête.
aussi, vous êtes à essayer de passer pour une nulle à une primitive qui pourrait causer quelques maux de tête.
OriginalL'auteur ChrisMcJava | 2013-07-09
Vous devez vous connecter pour publier un commentaire.
Tout d'abord vous ne pouvez pas définir une primitive nulle en tant que primitive est juste des données où
null
est une référence d'objet. Si vous avez essayé de compilerint i = null
vous désirez obtenir un incompatible types d'erreur.Deuxièmement initialisation des variables pour
null
ou0
lorsqu'elles sont déclarées dans la classe est redondant comme en Java, les primitives par défaut pour0
(oufalse
) et les références de l'objet par défaut pournull
. Ce n'est pas le cas pour les variables locales toutefois, si vous avez essayé de le ci-dessous, vous obtiendrez une erreur d'initialisation au moment de la compilationExplicitement initialiser à une valeur par défaut de
0
oufalse
ounull
est inutile mais vous pouvez les régler à une autre valeur par défaut, alors vous pouvez créer un constructeur qui a les valeurs par défaut pour exempleOriginalL'auteur Java Devil
Shanku et Morpheus répondu correctement à la question. Tout d'abord, vous obtiendrez une erreur de compilation réglage de votre primitif int variable "nombre entier" null; vous ne pouvez le faire que pour les Objets. Deuxièmement, Shanku est en droit de Java affecte des valeurs par défaut pour variables d'instance, qui sont "entier" et "aléatoire" dans votre exemple de code; les variables d'instance sont visibles au sein de la classe ou de l'au-delà en fonction de la portée (public, private, protected, package).
Cependant, les valeurs par défaut sont pas attribué pour variables locales. Par exemple, si vous avez affecté une variable dans votre constructeur comme "int hauteur;", alors il ne sera pas initialisé à zéro.
Je vous recommande de lire les Java documentation sur les variables, qui décrivent les variables de très bien et de plus, vous pouvez aussi consulter sur le Tutoriels Java, qui sont à nouveau en grand matériel de lecture.
OriginalL'auteur Minh Nguyen
En Java, l'initialisation est explicitement défini dans la spécification du langage. Pour les champs et les composants de la baie, lorsque des éléments sont créés, ils sont automatiquement réglées sur les valeurs par défaut suivantes par le système:
numéros: 0 ou 0.0
booléen: false
les références de l'objet: null
Cela signifie que la définition explicite des champs à 0, false ou null (selon le cas) est inutile et redondant.
OriginalL'auteur Shankari vatsalkumar