static示例
求生成对象的个数
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示例的更多相关文章
- php self与static的区别
self vs static 用一个demo来直接说明self与static的区别.self示例: <?phpclass Vehicle { protected static $name ...
- 20190312_浅谈go&java差异(一)
多线程 java java中对于大量的比较耗时的任务多采用多线程对方式对任务进行处理,同时由于进程和线程 本身是通过宿主机OS进行管理的,当在cpu核数较少或线程分配不当 会导致多线程的效果不佳的事常 ...
- H3C Comware V3 端口聚合
通常链路聚合有三种模式:手工汇聚.静态LACP汇聚和动态LACP汇聚. 但是V3版本下只提供了 手工聚合模式 manual 和 静态LACP聚合模式 static 两种 V3版本配置链路聚合 1,创建 ...
- koa源码阅读[0]
koa源码阅读[0] Node.js也是写了两三年的时间了,刚开始学习Node的时候,hello world就是创建一个HttpServer,后来在工作中也是经历过Express.Koa1.x.Koa ...
- php魔术方法的使用
本文测试环境为 php5.5.12 一.__get .__set 将对象的属性进行接管. 一般来说,总是把类的属性定义为private,但是对属性的读取和赋值操作非常频繁,在php5+,预定义__se ...
- C语言-- static 全局使用示例
C语言-- static 全局使用示例 前言:看到很多使用Objective-C开发IOS的大牛,有时候会使用static全局变量,相比之下,我却很少用这个,从而很少对其有着比较有实质意义的理解,甚 ...
- VC win32 static library静态链接库简单示例
中午在宿舍闲来没事,看到网上一篇帖子,关于静态链接库的英文示例.它在.Net上开发,我将其移到VC上开发,因此对其代码做了相应修改.帖子内容如下:(代码我已修改).原帖见:http://msdn.mi ...
- C语言--static全局使用示例
前言:看到很多使用Objective-C开发IOS的大牛,有时候会使用static全局变量,相比之下,我却很少用这个,从而很少对其有着比较有实质意义的理解,甚至更别说运用它了. 今天,经过一番思考和自 ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
随机推荐
- UI系统综述:iOS的图形绘制、动画与runloop
一.一条业务pipeline: 一个连接核心:coreanimation 二.两个进程: 1.app进程: 2.render进程: 首先,由 app 处理事件(Handle Events),如:用户的 ...
- 我的首次AK记
哈哈哈!本蒟蒻终于在今天中午机房测试中AK全场了(其实没啥技术含量,只有5个水题,对,全都很水)
- MongoDB shell 3 集合方法
方法名 描述 db.collection.aggregate() 聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果 db.collection.bulkWrite() 批量写入 ...
- Linux yum 包 下载地址
yum包网址: http://www.rpmfind.net/linux/rpm2html/search.php?query=yum
- ABP 02 解决 界面为英文
原文:https://www.cnblogs.com/wswind/p/10313968.html 1.直接改数据库 2.在数据迁移前,更改默认值 注意: 我的项目已经初始化了,数据库已经都生成好了, ...
- orm-1
- ORM什么是? 类名 ---> 数据库表 对象 ---> 记录 对象.属性 ---> 字段 - ORM的优缺点: 优点: 可跨平台,可以通过对象.属性取值,对象.方法,让该方法内 ...
- struct 声明类
#include <iostream> using namespace std; struct Student{ Student(char *name, int age, float sc ...
- 树形dp专题总结
树形dp专题总结 大力dp的练习与晋升 原题均可以在网址上找到 技巧总结 1.换根大法 2.状态定义应只考虑考虑影响的关系 3.数据结构与dp的合理结合(T11) 4.抽直径解决求最长链的许多类问题( ...
- android常见错误之 No resource found that matches the given name
新手上路,还希望大神多多照顾,刚自学android,遇到很多困难.其中就有这个问题,不知道你们遇到过没有,反正我是很头痛. No resource found that matches the giv ...
- 如何理解 Web API
什么是web API? web API 控制器.路由 测试 Web API 什么是web API ? 简单说,API是接口,访问程序的某一个功能或者数据,实现移动端和客户端的程序之间的数据交互: ...