[英]Instance Variable Declaration Syntax
在声明实例变量时,我看到我的新手眼中看起来像Java中的冲突约定。 例如,经典银行帐户实例变量可能看起来像这样,这非常有意义。
private double balance = 0.0;
访问修饰符,数据类型,变量名称和值都是我(错误地)认为进入实例变量的。 现在令人困惑的部分。
考虑导入的库/类/包,名为ColorImage。 它显然有一个canvas对象,但这是实例变量声明的样子。
private Canvas canvas = new Canvas();
private ColorImage image1 = new ColorImage("file.gif");
现在它看起来像对象名称,甚至库/包/类本身的名称也被用作数据类型。 而且,实例变量已经连接到看起来像构造函数的东西。
我的问题:为什么第二种语法看起来好像与第一种语言有很大不同?
任何帮助,将不胜感激。
为什么第二种语法看起来好像与第一种语言有很大偏差?
它不会从第一偏离的 。
Part First example Second example
Access modifier private private
Type double Canvas
Name balance canvas
Initialization expression 0.0 new Canvas()
你在哪里看到差异? 是的,类型可以是类,而不仅仅是原语。 是的,初始化表达式可以是任何表达式(不使用其他实例变量),而不仅仅是文字。 这根本不会改变语法 。
请注意,访问修饰符是可选的(默认为“包访问”),还有其他可能的修饰符( volatile
, final
, static
)。 但在您的示例中,应用的修改器集完全相同。
访问修饰符,数据类型,变量名称和值都是我(错误地)认为进入实例变量的
它实际上是一样的:
private ColorImage image1 = new ColorImage("file.gif");
私有 - 访问修饰符
ColorImage - 数据类型
image1 - 变量名称
new ColorImage(“file.gif”) - 用于创建新对象并返回对象引用值的表达式
Java数据类型可以是原始类型或引用类型 。 在您的示例中, double
是基本类型, ColorImage
和Canvas
都是引用类型。
在=
的右侧,你可以有任何表达式:
private double balance = 1.0 - 1.0;
要么
private double balance = zero();
static double zero() {
return 0.0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.