程序里定义的static变量的作用是什么?static变量就是类变量。意思是这个类的对象都共享这个变量。譬如你的
A类中声明了static int i=5;
A类有对象a1,a2,
当你通过a1改变i的值,那么就能在a2中看到i的改变。

解决方案 »

  1.   

    static就是静态的,不是在runtime动态分配的。你可以简单的理解为唯一的,始终存在的。那个x好像没用到过……
      

  2.   

    我知道static是静态变量都共享,我想问的是在这个程序里他起什么作用???
      

  3.   

    我定义的那个static int x 在那3个重载的方法里用到了呀,都是接受的那一个X呀,不定义的话我要写3个变量的,我理解的对么
      

  4.   

    static变量是用来在不同类对象间通讯用的
    比如public class Zhaoce{
    static int ce;
    }
    Zhaoce bigZhao;
    Zhaoce smallZhao;
    Zhaoce saZhao;
    bigZhao.ce=10;
    System.out.println("傻Zhaoce的ce是:"+saZhao.ce);输出的结果是10也就是所无论你修改了哪一个类对象里的static变量
    其它的类对象里的该static变量都会做相应的更改
    smallZhao.ce的值也是10
    简而言之,就是所有的类对象共享一个static变量
    另外,static变量还可以通过类名直接访问
    Zhao.ce的值也是10
      

  5.   

    不用static的话你的sqrt()必须经过对象才能用
    有static的话就可以直接用了
      

  6.   

    另外在你的程序里我并没看出那个static int x的作用
    因为你根本就没有定义你的BJ类的对象
      

  7.   

    就是啊
    static int x;没用到啊
    编译器没对你说?
      

  8.   

    是啊我把static int x这句去掉后程序也可以完好的运行,这是为什么??
      

  9.   

    你没有用到static int x这个变量
    虽然后面很多地方有Math.sqrt(x),但是此x非彼x,这里的x是方法的参数
    碰巧它也叫x罢了
    如果这样写
    static int x;
    static int mysqrt()
    {
    return (int)Math.sqrt(x);
    }
    那返回的就是static int x的平方根了
      

  10.   

    你如果这样写
    static int x;
    static int mysqrt(int y) //参变量的名字是y了
    {
    return (int)Math.sqrt(y); //这里使用参变量
    }
    跟你原来的程序是等价的
      

  11.   

    static int x;没用到我把他去掉后程序没问题,可是我把所有方法前面的static去掉后为什么就开始报告错误?
      

  12.   

    非static方法不能直接使用,必须创建对象实例才能使用
    就是说,static方法可以这样用int i=BJ.mysqrt(9);
    但是如果你去掉static关键字,必须这样用
    BJ bj=new BJ();
    int i=bj.mysqrt(9);