求生成对象的个数

 class A{
private int i;
private static int cnt = 0;
//此处用static修饰,让cnt属于类,多个对象共用一个属性,减少内存分配 public A(){ //new对象时,会自动执行无参构造方法
cnt++;//对象个数+1
} //无参构造方法和有参构造方法在new对象时必须执行并且只能执行其中一个 public A(int i){//new对象并且传值时会调用有参构造方法
this.i = i;
cnt++;//对象个数+1
} pUblic static int getCnt(){//用static修饰,属于类,通过类名直接调用
return cnt; //返回A对象的个数
}
} public class TestStatic{
public static void main(String[] args){
System.out.printf("当前A对象个数是:%d个",A.getCnt());//0个
A a1 = new A();
System.out.printf("当前A对象个数是:%d个",A.getCnt());//1个
A a2 = new A();
System.out.printf("当前A对象个数是:%d个",A.getCnt());//2个
A a3 = new A();
System.out.printf("当前A对象个数是:%d个",A.getCnt());//3个
}
}

限制:只生成一个对象

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

static示例的更多相关文章

  1. php self与static的区别

    self vs static 用一个demo来直接说明self与static的区别.self示例: <?phpclass Vehicle {    protected static $name ...

  2. 20190312_浅谈go&java差异(一)

    多线程 java java中对于大量的比较耗时的任务多采用多线程对方式对任务进行处理,同时由于进程和线程 本身是通过宿主机OS进行管理的,当在cpu核数较少或线程分配不当 会导致多线程的效果不佳的事常 ...

  3. H3C Comware V3 端口聚合

    通常链路聚合有三种模式:手工汇聚.静态LACP汇聚和动态LACP汇聚. 但是V3版本下只提供了 手工聚合模式 manual 和 静态LACP聚合模式 static 两种 V3版本配置链路聚合 1,创建 ...

  4. koa源码阅读[0]

    koa源码阅读[0] Node.js也是写了两三年的时间了,刚开始学习Node的时候,hello world就是创建一个HttpServer,后来在工作中也是经历过Express.Koa1.x.Koa ...

  5. php魔术方法的使用

    本文测试环境为 php5.5.12 一.__get .__set 将对象的属性进行接管. 一般来说,总是把类的属性定义为private,但是对属性的读取和赋值操作非常频繁,在php5+,预定义__se ...

  6. C语言-- static 全局使用示例

    C语言-- static 全局使用示例  前言:看到很多使用Objective-C开发IOS的大牛,有时候会使用static全局变量,相比之下,我却很少用这个,从而很少对其有着比较有实质意义的理解,甚 ...

  7. VC win32 static library静态链接库简单示例

    中午在宿舍闲来没事,看到网上一篇帖子,关于静态链接库的英文示例.它在.Net上开发,我将其移到VC上开发,因此对其代码做了相应修改.帖子内容如下:(代码我已修改).原帖见:http://msdn.mi ...

  8. C语言--static全局使用示例

    前言:看到很多使用Objective-C开发IOS的大牛,有时候会使用static全局变量,相比之下,我却很少用这个,从而很少对其有着比较有实质意义的理解,甚至更别说运用它了. 今天,经过一番思考和自 ...

  9. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

随机推荐

  1. Async/await promise实现

    An async function can contain an await expression that pauses the execution of the async function an ...

  2. Spring的三大核心思想:IOC(控制反转),DI(依赖注入),AOP(面向切面编程)

    Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧) 1.IoC是什么?    IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多 ...

  3. CF1105D-Kilani and the Game-(多向bfs)

    http://codeforces.com/problemset/problem/1105/D 题意:有一片矩阵区域,一开始有多个势力比如1,2,3,4....9,从势力1开始轮流向外扩张,地图上为‘ ...

  4. jQuery--data()方法

    data() 函数用于在当前jQuery对象所匹配的所有元素上存取数据. 通过data()函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将不复存在. 该函数属于jQuery对象(实例).如 ...

  5. Frightful Formula Gym - 101480F (待定系数法)

    Problem F: Frightful Formula \[ Time Limit: 10 s \quad Memory Limit: 512 MiB \] 题意 题意就是存在一个\(n*n\)的矩 ...

  6. 洛谷 P1993 小K的农场 题解

    每日一题 day55 打卡 Analysis 这是我们一次考试的T1,但我忘了差分约束系统怎么写了,所以就直接输出Yes混了60分 首先转化题目: 1:表示农场 a 比农场 b 至少多种植了 c 个单 ...

  7. [RN] React Navigation 使用中遇到的显示 问题 汇总

    React Navigation 使用中遇到的显示 问题 汇总 https://www.jianshu.com/p/8b1f18affc5d

  8. [RN] React Native 使用 AsyncStorage 存储 缓存数据

    React Native 使用 AsyncStorage 存储 缓存数据 AsyncStorage是一个简单的.异步的.持久化的Key-Value存储系统,它对于App来说是全局性的.这是官网上对它的 ...

  9. CSP-2019酱油记

    炸了 Day0 上午机房弥漫着颓废的气息... nc哥在疯狂打板子,我疯狂找水题找信心(然而被历次联赛T1爆切 退役气息稍重,好多人刷屏cnblogs.. 然后年级扛把子们来做指♂导啦- 准备了火龙果 ...

  10. 求等差数列前$n$项和$S_n$的最值

    一.方法依据: 已知数列\(\{a_n\}\)是等差数列,首项为\(a_1\),公差为\(d\),前\(n\)项和为\(S_n\),则求\(S_n\)的最值常用方法有两种: (1).函数法:由于\(S ...