Java defining or initializing attributes of a class
attributes, class, initializing, java
Solution
Firstly you cannot set a primitive to be null as a primitive is just data where `null` is an object reference. If you tried to compile `int i = null` you would get a incompatible types error.
Secondly initializing the variables to `null` or `0` when declaring them in the class is redundant as in Java, primitives default to `0` (or `false`) and object references default to `null`. This is not the case for local variables however, if you tried the below you would get an initialization error at compile time
public static void main(String[] args)
{
int i;
System.out.print(i);
}
Explicitly initializing them to a default value of `0` or `false` or `null` is pointless but you might want to set them to another default value then you can create a constructor that has the default values for example
public MyClass
{
int theDate = 9;
String day = "Tuesday";
// This would return the default values of the class
public MyClass()
{
}
// Where as this would return the new String
public MyClass (String aDiffDay)
{
day = aDiffDay;
}
}
Problem
Is there a difference between defining class attributes and initializing them? Are there cases where you want to do one over the other? Example: The following code snippets should point out the difference that I mean. I'm using a primitive and an object there: ``` 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(); .... ```