A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王红潮 中级黑马   /  2012-9-6 09:17  /  1598 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王红潮 于 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. }
复制代码
表达式必须放在方法里面吗?

9 个回复

倒序浏览
没有看到你的主函数在哪里
你定义的静态成员变量,可以被方法访问
回复 使用道具 举报
楼上说的狠对,写的时候要细心些。
回复 使用道具 举报
类的成员变量在方法外只能赋值,不能进行运算,要进行运算应该写在方法里面
回复 使用道具 举报
本帖最后由 武庆东 于 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 09:22
//楼主还有一个错误,你主函数格式写错了
class Test
{

不好意思,主函数没检查,那是不是说类里面只能定义变量和方法,不能进行表达式运算?
回复 使用道具 举报
武庆东 发表于 2012-9-6 11:53
class Test
    {
    static int x;

不用static,然后在主函数里用对象调用new Test().x也是报这个错误!
回复 使用道具 举报
王红潮 发表于 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);
    }}
回复 使用道具 举报
"//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.         }
复制代码
除此之外,表达式语句还可以写在构造代码块,静态代码块中,以后你自然就会学到,我就不一一举例了,相信你已经理解了.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马