在C ++中(在C-11之前),我们需要通过构造函数或某些方法初始化Class之外的变量。 Java中发生了什么?
答案 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 - 此变量仅创建一次,并且对于每个其他对象都是一个。