我正在进行一级计算,我想知道是否有人可以告诉我这个的定义。如果我有一个带有方法等的类,那么我创建另一个类,我在那里生成第一个类的变量。实际上这叫什么? 这是我之后显示的变量定义“whatisThis”这是一个类对象吗?
MyClass1
{
...
}
MyClass2
{
MyClass1 whatisThis = new MyClass1();
}
答案 0 :(得分:2)
这是一个初始化为新实例的实例字段; MyClass1
的封装将是我的描述。如果您重新公开两种类型共有的接口,那么它可能是 decoration 。
当然,没有方法,私人领域不能做很多事情; p
所以澄清一下:
whatisThis
是private
MyClass1
和每个实例,在本例中)
new MyClass1()
是MyClass1
whatisThis
;字段初始值设定项(使用此赋值的名称)通常在 之前发生任何自定义构造函数被调用答案 1 :(得分:1)
这就是它的样子 - 一个成员变量,另外它直接初始化。它与int
等原始类型没有任何不同。您可以随意使用MyClass2
。
答案 2 :(得分:1)
在结构:
class ClassName
{
//... class/object level member variables can be here (also called fields)
void MethodName()
{
//... method level variables can be here (also called local variables)
}
//... class/object level member variables can be here (also called fields)
}
成员变量类或对象级别?
static
修饰符static
修饰符因此,在MyClass2类的定义中,您有一个名为whatisThis
且类型为MyClass1
的对象级成员变量。 (它是对象级变量,因为没有static
关键字)
现在来定义变量本身。我们将这个定义分为3部分:
MyClass1 whatisThis = new MyClass1();
MyClass1 whatisThis
强>
MyClass1
,这是类型名称,与 int
中的 int i;
相同/强> whatisThis
,这是变量名称,与 i
中的 int i;
相同 =
强>
new MyClass1()
强>
MyClass1
另外,让我们定义,内存中发生了什么,行执行时(仅当 MyClass2
实例化时才执行此行):
MyClass1 whatisThis
强>
=
强>
MyClass1
类型对象的地址new MyClass1()
强>
MyClass1
的对象在堆 所以最终的答案是:
在课程MyClass2
中,您定义whatisThis
类型的对象级变量MyClass1
,并且初始化引用在堆上实例化的类型MyClass1
的对象实例。
答案 3 :(得分:0)
What is this actually called?
您正在使用运算符MyClass1
声明new
的新对象(为对象分配内存)
"whatisThis" is this a class object?
是