zoukankan      html  css  js  c++  java
  • static示例

    求生成对象的个数

     1 class A{
     2     private int i;
     3     private static int cnt = 0; 
     4     //此处用static修饰,让cnt属于类,多个对象共用一个属性,减少内存分配
     5     
     6     public A(){ //new对象时,会自动执行无参构造方法
     7         cnt++;//对象个数+1
     8     }
     9     
    10     //无参构造方法和有参构造方法在new对象时必须执行并且只能执行其中一个
    11     
    12     public A(int i){//new对象并且传值时会调用有参构造方法
    13         this.i = i; 
    14         cnt++;//对象个数+1
    15     }
    16     
    17     pUblic static int getCnt(){//用static修饰,属于类,通过类名直接调用
    18         return cnt; //返回A对象的个数
    19     }
    20 }
    21 
    22 public class TestStatic{
    23     public static void main(String[] args){
    24         System.out.printf("当前A对象个数是:%d个",A.getCnt());//0个
    25         A a1 = new A();
    26         System.out.printf("当前A对象个数是:%d个",A.getCnt());//1个
    27         A a2 = new A();
    28         System.out.printf("当前A对象个数是:%d个",A.getCnt());//2个
    29         A a3 = new A();
    30         System.out.printf("当前A对象个数是:%d个",A.getCnt());//3个
    31     }
    32 }

    限制:只生成一个对象

     1 class A{
     2     public int i = 20;
     3     private static A a = new A();  
     4       //a既是A类的对象,也是A类的属性!指向a本身
     5       //此处的static不能省略,下面的getA方法将会访问a对象(属性)
     6       //不然静态方法将不能访问非静态成员
     7     
     8     private A(){ //将构造方法设置为私有,这样就只能在本类里面创建对象
     9     }
    10     
    11     public static A getA(){
    12     //返回值类型是A,是一个地址类型,对象a的地址    
    13     //在其他类调用getA()方法,可以得到a对象
    14     //注意此方法必须设置为static静态的,其他类可以不创建对象就能访问
    15         return a;
    16     }
    17 }
    18 
    19 public class TestStatic{
    20     public static void main(String[] args){
    21         A a1 = A.getA();
    22         A a2 = A.getA();
    23         a1.i = 99;
    24         System.out.printf("%d",aa2.i); //输出99,说明a1和a2是同一个对象
    25           //因为a1和a2的对象地址都是同一个getA()方法返回的a对象地址
    26     }
    27 }

  • 相关阅读:
    Css3炫酷总结使用
    HTML5的你应该记住的一些知识点
    JavaScript 笔记
    Sliverlight linq中的数组筛选数据库中的数据
    理解依赖注入 for Zend framework 2
    Zend Framework 2中如何使用Service Manager
    让注册体验来得更简单点吧
    Flash中国地图 开放源码
    cocos2dx之WebView踩过的坑(android返回键处理问题)
    android游戏的增量更新(资源及代码的热更新)
  • 原文地址:https://www.cnblogs.com/sunbr/p/11480912.html
Copyright © 2011-2022 走看看