JavaSE(五)-静态对象

目录:

  •     静态对象
  •     单例模式

正文:

    1.    静态 static  ,在Java里表示“全局的”
           静态内部类   (我的上一篇博客里有说戳我打开)
           静态方法    (全局方法)
           静态对象

           静态代码块

静态对象,即全局对象,一直存在的

例如,

“恐龙已经灭绝了,太阳却一直存在”
   :太阳是静态对象,恐龙是普通对象
“铁打的营盘、流水的兵”

   :营盘是静态对象,兵是普通对象

静态对象的使用
定义静态对象:

public class Example
{
    public static XXX  a =new XXX();
}
使用静态对象:
     Example.a.test();
test是XXX对象中的方法.

注意:并不需要创建Example的实例,直接用Example.a引用这个静态对象

要点:(重点)(敲黑板)
1 .在第一次使用时,静态对象被创建
  例如:当Example类被使用时,Example.a被创建
   如果Example从未被使用,则Example.a永不创建
2 .静态对象不会被系统回收
  即,普通对象在失去引用后,会被GC回收
  而静态对象永远不会被GC回收
3 .静态对象只有一个实例

  即,无论创建多少个Example对象,Example.a只创建一次

   

 2.    单例模式

单例,Single Instance,指全局唯一的实例
全局: 在程序运行期间一直存在
唯一: 只有一个实例
例如,
一个游戏程序,里面的人员角色道具宝贝都是可以创建和销毁的,但是基地、场景等对象是一直存的。

限制创建实例

一个class,怎么限制不让创建实例呢?

public class Earth
{
        private Earth()
        {
        }
}

将构造方法声明为private,则调用者无法创建Earch实例...

使用static,可以创建一个全局对象
public class Earth
{
        public static Earth i = new Earth();
}

Earth.i 指向一个全局的Earth对象(永不销毁)

全局唯一实例

public class Earth
{
       public static Earth i = new Earth ();
	private Earth()
       {
       }
 }
- Earch.i 指向一个全局的Earth实例
- 调用者无法new出别的实例,所以它是全局唯一的实例

比如,一个游戏程序开始时,
main()
{
       Config.i.load()  加载配置
       Scene.i.load()  加载场景
       startGame()...

}

总结:    

    1.    不是特别重要,不管你懂不懂,用起来都是简单的.

    2.    知道静态对象在第一次使用时就被创建了,并且不被销毁,且只有一个实例.

    3.    单例模式: 初学者了解一下知道有这种设计模式,能看懂代码, 然后用的使用想起在哪学的,再回来看下就好看.

                    全局对象:用static实现

                    唯一对象:将构造方法设为private

    4.    不管懂不懂,先会用再说大笑. 用多了理解也就越深. 


    emmmm最后, 笔者写的肯定有不好或者写错的地方, 请各位大佬检阅.  

                持续更新, 现在学的不精, 不敢更些深的, 以后学精了, 还在这基础上再细讲.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值