Java定义或初始化类的属性

Chr*_*ava 19 java attributes class initializing

定义类属性和初始化它们之间有区别吗?有没有你想要一个做另一个的情况?

例:

以下代码片段应指出我的意思.我在那里使用原始和对象:

import Java.util.Random;

public class Something extends Activity {
    int integer;
    Random random = null;

    Something(){
        integer = 0;
        random = new Random();
        ....
Run Code Online (Sandbox Code Playgroud)

import Java.util.Random;

public class Something extends Activity {
    int integer = null;
    Random random;

    Something(){
        integer = 0;
        random = new Random();
        ....
Run Code Online (Sandbox Code Playgroud)

Jav*_*vil 17

首先,您不能将基元设置为null,因为基元只是数据,其中null是对象引用.如果您尝试编译int i = null,则会出现不兼容的类型错误.

其次,将变量初始化为null0在类中声明它们是多余的,如在Java中,原语默认为0(或false),对象引用默认为null.但是,对于局部变量,情况并非如此,如果您尝试以下操作,则会在编译时遇到初始化错误

 public static void main(String[] args)
 {
     int i;
     System.out.print(i);
 }
Run Code Online (Sandbox Code Playgroud)

明确地将初始化为一个缺省值0false或者null是毫无意义的,但你可能想将它们设置为另一默认值,那么你可以创建具有例如默认值的构造函数

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;
   }
}
Run Code Online (Sandbox Code Playgroud)