可以在Java中的类中初始化变量吗?那么静态变量呢?如果是,那么静态阻塞的用途是什么?

时间:2017-01-25 08:36:51

标签: java variables initialization

在C ++中(在C-11之前),我们需要通过构造函数或某些方法初始化Class之外的变量。 Java中发生了什么?

4 个答案:

答案 0 :(得分:1)

  

可以在Java中的类中初始化变量吗?

是的,就像这样:

public class MyClass {
    private int myVariable = 10;
}
  

静态变量怎么样?如果是,那么静态阻止的用途是什么?

是的,静态变量也可以在类中初始化:

public class MyClass {
    private static int myVariable = 10;
}

当您想要初始化静态变量时使用静态块,但是一行不足。例如:

public class MyClass {
    private static HashMap<Integer, Integer> myMap;

    static {
        myMap = new HashMap<>();
        myMap.put(10, 20);
        myMap.put(20, 40);
    }
}

答案 1 :(得分:1)

c ++ v / s Java:

Common - 两种OOP语言 差异 - c ++不是纯粹的面向对象语言,而是纯粹的oop语言。

是蓝图(如通用映射),它定义了该类对象的一些属性/属性(成员变量)和行为(成员函数)。

只是在创建对象之前的想象力。

对象是在现实世界中具有物理存在的实时实体,或者简单地说它是类的实现。

java中的类:

class class_name
{
  member variables;
  member functions;
};

实施例

class A
{
int a;
void funct()
{
//body
}
};                     //defination is closed with semicolon

但是,

java中的

类:

答案:

class class_name
{
  member variables;       //still we define the attributes in class that may be static or non-static
  member functions;
};

静态变量的意义: 对于该类的所有对象,静态变量是ram中的公共内存,并且静态成员上的任何对象执行的操作由于公共(相同)内存而被反映到所有其他对象的静态成员。

静态方法的意义(函数在java中称为方法):类的静态方法是在不创建该类的对象的情况下调用的方法。 在java中,main()方法被声明为static,因为在执行程序之后调用main()方法而不创建类的对象。

OS的

kernal调用main()方法。

答案 2 :(得分:0)

  

可以在Java中的类中初始化变量吗?

class TestClass {
    int abc = 0;
    static int def = 1;
}
  

静态变量怎么样?

是的,你可以。与上面相同的例子。
但是每次创建类的对象时都不会初始化它。

TestClass ob1 = new TestClass();
ob1.def = 2; // Always use the class name to access static variables. This is just an example.

TestClass ob2 = new TestClass();
System.out.println(ob2.def); // Output : 2

PS:始终使用类名访问静态变量。这只是一个例子。

  

静态阻止有什么用?

如果静态变量的初始化很复杂,那么您可以创建一个静态块并在那里初始化那些变量。 Here是一个很好的参考。

class TestClass {
    int abc = 0;
    static int def = 1;

    static {
         int x = 100;
         int y = 20;
         def = x - y + 10;
    }

}

答案 3 :(得分:0)

如果你想要初始化变量,你可以创建类似的东西

public class Animal
{
    int age = 21;
    static int roll = 23; 
}

但请记住实例变量和静态变量之间的区别, int age - 为您创建的每个对象创建此变量 static int roll - 此变量仅创建一次,并且对于每个其他对象都是一个。