在任何变量或参数之前放置$ sign的区别或意义是什么。
e.g。
假设这是我的班级......
public class Vector3 {
public Vector3(float x, float y, float z){
//...
//... my ctor code
//...
}
}
这两个声明之间的区别是什么......
声明1
Vector3 $vec = new Vector3(1f,1f,1f);
声明2
Vector3 vec = new Vector3(1f,1f,1f);
如果您在声明1和声明2中的“vec”之前注意到$ sign。
任何线索?
另外,声明与下面相同的构造函数,
public class Vector3 {
public Vector3(float $x, float $y, float $z){
//...
//... my ctor code
//...
}
}
上面的构造函数和初始构造函数之间有什么区别?
...谢谢
编辑:感谢你的所有回复,我用不同的组合做了这个,没有重大意义:)我很感谢你的所有答案。
答案 0 :(得分:11)
编译并运行。小孩你不是。
package $;
public class $
{
int $;
int $(int $){ return $; }
void $$(int $){ this.$=$; }
$ _(){ return this; }
$ _;
{
$$($($));
_._()._._()._();
}
}
答案 1 :(得分:10)
根据Java Language Specification,这是允许的,但没有特别的意义。请注意,该规范继续建议它“仅用于机械生成的源代码,或者很少用于访问遗留系统中预先存在的名称”。
答案 2 :(得分:7)
虽然很多人都指出$
是legal in identifiers,但我反驳使用$
(至少作为初始代币),因为它与Java Naming Conventions相反:
变量名称不应以下划线_或美元符号$字符开头,即使两者都允许。
虽然这不包括foo$bar
的情况,但我遵循JLS建议,$
仅在生成的代码中使用 。例如,Java编译器在生成匿名类时使用$
。
如果没有别的,我会认为你的代码很丑: - )
答案 3 :(得分:3)
我不相信它只是用于Java变量名称的有效符号。从关于变量的Java教程(http://download.oracle.com/javase/tutorial/java/nutsandbolts/variables.html):
变量名称区分大小写。变量的名称可以是任何合法的标识符 - 无限长度的Unicode字母和数字序列,以字母开头,美元符号“$”或下划线字符“_”。然而,约定是总是用一个字母开始你的变量名,而不是“$”或“_”。此外,按照惯例,美元符号字符根本不会被使用。您可能会发现某些情况,其中自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。对于下划线字符存在类似的约定;虽然用“_”开始变量的名称在技术上是合法的,但不鼓励这种做法。不允许有空白区域。
答案 4 :(得分:0)
变量名称区分大小写。变量的名称可以是任何合法标识符 - Unicode字母和数字的无限长度序列,以字母开头,美元符号“$”或下划线字符“”。但是,惯例是始终使用字母开头,而不是“$”或“”。此外,按照惯例,美元符号字符根本不会被使用。您可能会发现某些情况,其中自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。对于下划线字符存在类似的约定;虽然用“_”开始变量的名称在技术上是合法的,但不鼓励这种做法。不允许有空格。
取自:ttp://download.oracle.com/javase/tutorial/java/nutsandbolts/variables.html#naming