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



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

在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);
}
}

c++v/s Java:

通用-均为OOP语言区别-c++不是纯粹的面向对象语言,但Java是纯粹的oop语言。

是定义该类对象的某些属性/属性(成员变量)和行为(成员函数)的蓝图(类似于通用映射)。

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

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

java中的类:

class class_name
{
member variables;
member functions;
};

Ex。

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()方法被声明为静态的,因为在执行程序之后,在不创建类的对象的情况下调用main()。

操作系统的内核调用main()方法

在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:总是使用类名来访问静态变量。这只是一个例子

静态块有什么用?

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

class TestClass {
int abc = 0;
static int def = 1;
static {
int x = 100;
int y = 20;
def = x - y + 10;
}
}

如果您想初始化变量,您可以创建

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

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

最新更新