读书人

Java语法猎奇怪

发布时间: 2012-12-14 10:33:08 作者: rapoo

Java语法,好奇怪
public class DepretedTest {
private int a = 1;
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toLocaleString());

DepretedTest depretedTest = new DepretedTest();
depretedTest.a;
//Syntax error, insert "AssignmentOperator Expression" to complete Expression
如果使用 deprecatedTest.a
比如赋值给变量:String s 则没错,等。。。


}
请问这是什么语法哈,我还是第一次听说的,我想应该是JVM 的规定但是好奇怪。。第一次遇到
[最优解释]
单独的 depretedTest.a; 不是一个正常的赋值操作或方法调用
[其他解释]
depretedTest.a;
你这句本来是用来干什么的,它不是语句,所以会报错啊。
你在这个帖子看看,就知道对比下它的*(p+i);
http://bbs.csdn.net/topics/390276888

希望能帮到你。

[其他解释]
第一个java方法内的属性,不同于类体内的属性,前者为局部属性,后者为成员属性。因为成员属性在类的初始化时会自动赋值,而方法属性不会,因此,java规定方法属性必须在使用之前赋值,绝大部分时间是声明时即赋值。
另外楼上兄台貌似有点错误,即使类中的成员为piavate属性,在自身类也可以通过创建对象,然后点取属性进行操作的。
[其他解释]
额,因为a是private的啊,如果你实在想写depretedTest.a可以把a声明为public,但是java肯定不建议你写成这样。私有成员的访问还是建议用set和get函数的,比如:
private int a;
public void setA(int a){
this.a=a;
}
public int getA(){
return a;//this.a也可以
这样你再用depretedTest.getA()就可以给其他东西赋值了。
[其他解释]
楼主学的是C++?
[其他解释]
该回复于2012-11-11 23:25:02被管理员删除
[其他解释]

引用:
楼主学的是C++?

不是,在C++ 可以这样是么?
我见这样的现象很奇怪,就想问问谢谢了

读书人网 >J2SE开发

热点推荐