黑马程序员技术交流社区

标题: 类里面不能直接用表达式吗? [打印本页]

作者: 王红潮    时间: 2012-9-6 09:17
标题: 类里面不能直接用表达式吗?
本帖最后由 王红潮 于 2012-9-7 00:26 编辑

当变量作为类的成员使用时,java会确保给其默认值,然后不可以直接进行表达式运算吗,如
  1. class Test
  2. {
  3. static int x;
  4. //x=x+3;//提示错误:需要<标示符>
  5. //类里面不能执行表达式语句的操作吗
  6. public static void ()
  7. {
  8. System.out.println(x);
  9. }
  10. }
复制代码
表达式必须放在方法里面吗?

作者: 董志超    时间: 2012-9-6 09:40
没有看到你的主函数在哪里
你定义的静态成员变量,可以被方法访问
作者: 彭润生    时间: 2012-9-6 09:41
楼上说的狠对,写的时候要细心些。
作者: 王陶成    时间: 2012-9-6 10:40
类的成员变量在方法外只能赋值,不能进行运算,要进行运算应该写在方法里面
作者: 武庆东    时间: 2012-9-6 11:53
本帖最后由 武庆东 于 2012-9-6 12:06 编辑

    class Test
    {
    static int x;
    //x=x+3;//提示错误:需要<标示符>
    //使用static生命属性,则此属性成为全局属性!一旦被定义不能指向新的对象,所以不能x=x+3;
    public static void ()
    {
    System.out.println(x);
    }
    }
作者: 王红潮    时间: 2012-9-6 18:47
吕书凯 发表于 2012-9-6 09:22
//楼主还有一个错误,你主函数格式写错了
class Test
{

不好意思,主函数没检查,那是不是说类里面只能定义变量和方法,不能进行表达式运算?
作者: 王红潮    时间: 2012-9-6 18:48
武庆东 发表于 2012-9-6 11:53
class Test
    {
    static int x;

不用static,然后在主函数里用对象调用new Test().x也是报这个错误!
作者: 武庆东    时间: 2012-9-6 19:03
王红潮 发表于 2012-9-6 18:48
不用static,然后在主函数里用对象调用new Test().x也是报这个错误!

class Test
{
static int x;
//x=x+3;//提示错误:需要<标示符>
//类里面不能执行表达式语句的操作吗
public static void ()
{
System.out.println(x);
}
}
这里的int x和void()方法都被static修饰,均为静态成员变量和静态成员方法,静态成员方法只能被访问外部类的静态成员变量,所以必须用static
要想在主方法中new Test().x正常使用可改为:
    class Test
    {
    static int x=3;//x=x+3要想使用x必须先对x进行定义和初始化,所以不能x=x+3

    public static void ()
    {
    System.out.println(x);
    }
public static void main(String[] args){
System.out.println(new Test().x);
    }}
作者: AngieFans85    时间: 2012-9-6 19:30
"//x=x+3;//提示错误:需要<标示符>"

x = x + 3;
这句代码的意思是将变量x的值取出来再加上3,然后又重新赋值给变量x.现在的问题是在x之前一直没有值,强行取值就会报错.



"//类里面不能执行表达式语句的操作吗"

你不觉得没有方法名的吗.
表达式语句一般都写在方法里,如果要写在类里,那就在定义成员变量并初始化成员变量的时候才可以,比如:
  1. static int x = setX(20);

  2. public static int setX(int newValue) {
  3.                 return newValue;
  4.         }
复制代码
除此之外,表达式语句还可以写在构造代码块,静态代码块中,以后你自然就会学到,我就不一一举例了,相信你已经理解了.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2