Java_静态变量

2019-05-10 06:05:01来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

class c1c {
    private static int num = 0;
    private static double pi = 3.14;
    private double radius;
    private int height;
    public c1c(double r,int h)
    {
        radius = r;
        height=h;
        num++;
    }
    public void count()
    {
        System.out.print("创建了"+num+"个对象");
    }
    double area() {
        return pi*radius*radius;
    }
    double volume() {
        return area()*height;
    }
}
public class cc{
    public static void main(String[] args)
    {
        c1c volu1=new c1c(2.5,5);
        volu1.count();
        System.out.println("圆柱1的体积="+volu1.volume());
        c1c volu2=new c1c(1.0,2);
        volu2.count();
        System.out.println("圆柱2的体积="+volu2.volume());
    }
}

  本例中声明了一个静态变量num用于记录程序中共产生了多少个对象。

  因为对象创建时会自动调用构造方法,所以在构造方法中加入了“num++;”语句,这样每创建一个对象就调用一次构造方法,从而每产生一个对象,num的值就会自动加1 。

  此时,因为静态变量是一个公共的存储单元,所以类的任何一个对象去修改它时,都是在对同一个内存单元做操作。

去掉声明num的static后

private int num = 0;

可以看到num的值没有变化,这是因为num成为实例变量后,对创建的不同对象来说,都有自己独立的内存来保存它的值,且不与其他对象共享,因此若修改了volu1的num值,volu2的num并不受影响。

 


原文链接:https://www.cnblogs.com/sakuragi666/p/10835187.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java中ArrayList和LinkedList区别

下一篇:JavaWeb ,EL,