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学习之旅—第三个示例之三(二十九) ...
随机推荐
- 浙大PAT 2-10. 海盗分赃——经典博弈
题意 P个海盗偷了D颗钻石后分赃($3 \leq P, D\leq 100$),采用分赃策略: 从1号开始,提出一个分配金币的方案,如果能够得到包括1号在内的绝对多数(即大于半数)同意,则执行该方案, ...
- [Algorithm] 171. Excel Sheet Column Number
Given a column title as appear in an Excel sheet, return its corresponding column number. For exampl ...
- linux学习17 运维核心技能-Linux系统下用户权限管理
一.权限管理 1.ls -l rwxrwxrwx 左三位:定义user(owner)的权限 中三位:定义group的权限 右三位:定义other的权限 1.进程安全上下文 a.进程对文件的访问权限应用 ...
- AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
忘记网址了…… 问题: 分析思路与解决方法:
- 使用plotly dash-component-boilerplate 生成自己的组件
plotly 基于dash-component-boilerplate给我们提供了可以快速生成基于使用python 调用的react 组件 以下是一个简单的使用脚手架生成一个组件,同时可以了解组件的工 ...
- 使用Maven创建一个普通java项目
1.创建项目: 使用Maven目的是是我们能够轻松的管理各种别人写过的包 创建好之后,我们去找我们所需要的包:在mvnrepository.com中找自己所需要的包 例子: 最后将依赖写入pom.xm ...
- 洛谷p2672推销员题解
日常扯废话: 话说题解里的思路都写得真的是很奈斯啊 但是 代码看不懂确实让人头疼(可能是我太弱了) 就像题解里的第一篇题解代码简洁但是属实看不明白 趁着学姐刚给我讲了知识还热乎赶紧给泥萌说说哈 正文: ...
- 我TM怎么这么垃圾
我现在已经完完全全是个废人了 比黄焖鸡还辣鸡 成绩差的一批 其实我一直就不太会学习,也懒不想学习 所以我就越来越辣鸡 再加上最近精神状态不太好 整天呆呆的 我真的是完完全全的一个废人了
- 自定义的操作Cookie的工具类
可以在SpringMVC等环境中使用的操作Cookie的工具类 package utils; import java.io.UnsupportedEncodingException; import j ...
- Java常见集合的默认大小及扩容机制
在面试后台开发的过程中,集合是面试的热话题,不仅要知道各集合的区别用法,还要知道集合的扩容机制,今天我们就来谈下ArrayList 和 HashMap的默认大小以及扩容机制. 在 Java 7 中,查 ...