我想知道在构造函数中声明的类变量和变量之间的区别。例如:我可以知道类变量和在构造函数中声明的变量之间的区别吗?
class A {
int a;
}
VS
class A {
public A() {
int a;
}
}
我想知道在构造函数中声明的类变量和变量之间的区别。例如:我可以知道类变量和在构造函数中声明的变量之间的区别吗?
class A {
int a;
}
VS
class A {
public A() {
int a;
}
}
当你做
class A {
int a;
}
的整数一个可以通过在A类的任何其他实例方法来访问,并且所有子对象(一些包的限制),以及...
所以米艾因的区别是变量
,另一方面范围......当你做
public A() {
int a;
}
的变量是指出范围一旦构造函数返回...
在class A { int a; }
中,变量a
在整个类中由您将实现的所有方法(以及其他包的类,int中的精确情况)共享。
至于class A { public A() { int a; } }
变量a
只能在构造函数的作用域内访问。这意味着它在构造函数返回时被销毁。
在第一类中,a
是堆分配的,而在另一种情况下,它是堆栈分配的。
在
class A {
int a;
}
变量可以在任何地方在类
但是所使用的,在
class A {
public A() {
int a;
}
}
可变a
可以只在函数内部访问A()
所以
class A {
int a;
public printA() {
Log.i("TEST", a); // will work fine
}
}
但
class A {
public printA() {
int a;
Log.i("TEST", a); // will work fine
}
public void printA1() {
...
...
Log.i("TEST", a); // will throw an error
}
}
类变量2种类型
构造,实例方法可以访问静态和非静态静态变量,但构造函数变量是局部变量,如方法变量,我们不能访问构造函数之外。