在C++中(在C-11之前),我们需要通过构造函数或一些方法初始化类之外的变量。在Java中发生了什么?
发布于 2017-01-25 08:41:32
可以在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);
}
}发布于 2017-01-25 09:01:33
c++ v/s Java:
c++不是纯面向对象的语言,而是纯面向对象的语言。
类是蓝图(类似于一般映射),它定义了该类对象的一些属性/属性(成员变量)和行为(成员函数)。
类只是在创建对象之前的一种想象。
对象是实时实体,它在现实世界中或简单地说是类的实现中具有物理存在。
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()方法被声明为静态方法,因为在执行程序main()方法后,不需要创建类的对象。
OS的内核调用main()方法。
发布于 2017-01-25 08:45:10
可以在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 : 2PS :始终使用类名访问静态变量。这只是一个例子。
静态块的用途是什么?
如果静态变量的初始化很复杂,那么可以创建一个静态块并在那里初始化这些变量。这里也是一个很好的参考。
class TestClass {
int abc = 0;
static int def = 1;
static {
int x = 100;
int y = 20;
def = x - y + 10;
}
}https://stackoverflow.com/questions/41846805
复制相似问题