在
Java中,我可以访问一个类的公共成员.在下面的例子的main方法的第二行中可以看到(为了这个例子,忽略我使用不了的封装).
public class Test { public static void main(String[] args) { Position p = new Position(0,0); int a = p.x; // example of member access } } class Position { public int x; public int y; public Position(int x,int y) { this.x = x; this.y = y; } }
是个 .被认为是Java编程语言中的运算符,正如*,〜和!=被视为运算符?
编辑 – 扩展上面的例子:
如前所述,Java语言规范似乎认为.作为分隔符而不是运算符.不过,我想指出.表现出一些看似相当操作的行为.考虑以上示例扩展到以下内容:
public class Test { public static void main(String[] args) { Position p = new Position(0,0); int a = p . x; // a -> 0 int x = 1; int b = p . x + x; // b -> 1 } } class Position { public int x; public int y; public Position(int x,int y) { this.x = x; this.y = y; } }
很明显,一些优先级正在执行,以便在添加之前对成员访问进行评估.这似乎是直观的,因为如果首先要评估加法,那么我们将有p.2这是废话.不过,很明显.表现出其他分离器没有的行为.
解决方法
它被认为是分隔符,而不是运算符.有关所有分隔符和运算符的列表,请参见
Java Language Specification sections 3.11 and 3.12.