Is there a difference between defining class attributes and initializing them? Are there cases where you want to do one over the other?
Exampl
Shanku and Morpheus answered the question correctly. First, you will get a compile error setting your primitive int variable "integer" to null; you can only do that for Objects. Second, Shanku is right that Java assigns default values to instance variables, which are "integer" and "random" in your example code; instance variables are viewable within the class or beyond depending on the scope (public, private, protected, package).
However, default values are not assigned for local variables. For instance, if you assigned a variable in your constructor like "int height;" then it will not be initialized to zero.
I would recommend reading the Java variable documentation, which describe the variables very well and furthermore you could also look over the Java tutorials, which again are great reading material.