日期:2014-05-20  浏览次数:20739 次

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++ 可以这样是么?
我见这样的现象很奇怪,就想问问···谢谢了