请选择 进入手机版 | 继续访问电脑版
点击联系客服
客服QQ: 客服微信:
查看: 107|回复: 50

早间讲座代码演示

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-10-1 07:27:48 | 显示全部楼层 |阅读模式
饿汉

package  cn  . tedu  . design;

/*此类用于测试单个案例设计模式实现方案。饿中文*/

Public  class  Singleton1 {

public  static  void  main(string[]args){

//4。创建main()进行测试

//new  my  single();//无法直接创建这些对象

mysinglesingle  1=my  single  . getsingle();

mysinglesingle  2=my  single  . getsingle();

//6。测试得到的对象是否相同
     System.out.println(single1 == single2);//true
        System.out.println(single1);//cn.tedu.design.MySingle@677327b6
        System.out.println(single2);//cn.tedu.design.MySingle@677327b6
    }
}
//0.创建自己的单例程序
class MySingle{
    //1.提供构造方法,并且将构造方法私有化
    /*构造方法是与类同名且没有返回值类型的方法,创建对象时使用
    * 私有化:被private修饰,被private修饰的资源只能在本类中使用
    * 把构造方法私有化的目的:为了不让外界随意调用本方法,实例化/new本类对象*/
    private MySingle(){
    }
    //2.创建本类对象,并把本类对象也私有化
    //5.2创建出来的对象也需要改成静态的,因为getSingle()是静态的,静态只能调用静态
    private static MySingle single = new MySingle();
    //3.需要给外界提供一个公共的全局访问点
    //5.1需要将本方法设置成静态,这样就可以通过类名直接调用,不用通过对象来调用
    public static MySingle getSingle(){
        //4.将本类刚刚创建的对象通过return关键字返回调用位置
        //如果一个方法设置了返回值类型,那么这个方法必须有相同类型的返回值
        return single;
    }
}

懒汉式

package cn.tedu.design;
/*本类用于完成单例设计模式二:懒汉式--面试重点
* 延迟加载的思想:是指不会在第一时间就把对象创建好,来占用内存
* 而是什么时候用到,什么时候再去创建这个类的对象*/
/*关于单例设计模式的两种实现方式:
* 1.饿汉式:不管用不用这个类的对象,我都会在这个类里创建一个
* 2.懒汉式:先不给你创建这个类对象,而是等你需要的时候再帮你创建--利用了延迟加载的思想*/
public class Singleton2 {
    //5.在main()中尝试获取本类对象
    public static void main(String[] args) {
        MySingle2 single1 = MySingle2.getSingle2();
        MySingle2 single2 = MySingle2.getSingle2();
        //6.测试两个引用类型变量保存的对象的地址值是否一致
        System.out.println(single1 == single2);//true
        System.out.println(single1);//cn.tedu.design.MySingle2@677327b6
        System.out.println(single2);//cn.tedu.design.MySingle2@677327b6
    }
}
//0.创建一个自己的单例程序
class MySingle2{
    //1.私有化本类的构造方法,为了防止外界直接调用本类的构造方法创建对象
    private MySingle2(){
    }
    //2.再类的内部创建好引用类型变量(延迟加载的思想)--注意私有化
    //4.2本成员方法也需要设置成静态,因为静态只能调用静态
    private static MySingle2 single2;
    //3.创建一个公共的方法供外界调用,用来获取本类唯一的对象
    //4.1如果想绕过对象通过本类类名直接调用本方法,需要将方法设置成静态,因为静态可以被类名直接调用
    public static MySingle2 getSingle2(){
        //3.1在返回对象之前,需要先判断single2是否保存有地址值
        if (single2 == null){//如果是默认值null,说明之前从来没有创建过本类对象
            //3.2没有创建,就创建一个,并赋值给single2
            single2 = new MySingle2();
        }
        //3.3如果跳过了if的{},说明single2不为空,有地址值,之前创建过对象
        //那么就不再新建对象,而是把之前的对象返回,即可
        return single2;
    }
}
class MySingle3{
    private MySingle3(){
    }
    private static MySingle3 single3;
    public static MySingle3 getSingle3(){
        if (single3 == null){
            single3 = new MySingle3();
        }
        return single3;
    }
}
回复

使用道具 举报

1

主题

329

帖子

-119

积分

限制会员

积分
-119
发表于 2021-10-1 07:54:23 | 显示全部楼层
好好 学习了 确实不错
回复

使用道具 举报

1

主题

387

帖子

-183

积分

限制会员

积分
-183
发表于 2021-10-1 09:06:23 | 显示全部楼层
我是来刷分的,嘿嘿
回复

使用道具 举报

1

主题

373

帖子

-136

积分

限制会员

积分
-136
发表于 2021-10-1 09:44:54 | 显示全部楼层
LZ说的很不错
回复

使用道具 举报

1

主题

347

帖子

-143

积分

限制会员

积分
-143
发表于 2021-10-1 10:05:49 | 显示全部楼层
帮你顶下哈!!
回复

使用道具 举报

1

主题

408

帖子

-165

积分

限制会员

积分
-165
发表于 2021-10-1 10:33:03 | 显示全部楼层
前排支持下
回复

使用道具 举报

0

主题

349

帖子

-167

积分

限制会员

积分
-167
发表于 2021-10-1 10:57:39 | 显示全部楼层
LZ说的很不错
回复

使用道具 举报

1

主题

346

帖子

-136

积分

限制会员

积分
-136
发表于 2021-10-1 11:18:16 | 显示全部楼层
前排支持下
回复

使用道具 举报

0

主题

371

帖子

-143

积分

限制会员

积分
-143
发表于 2021-10-1 11:38:34 | 显示全部楼层
我抢、我抢、我抢沙发~
回复

使用道具 举报

0

主题

366

帖子

-190

积分

限制会员

积分
-190
发表于 2021-10-1 12:18:24 | 显示全部楼层
难得一见的好帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|汕头@IT精英团

Powered by Discuz! X3.4 © 2021 Comsenz Inc.

GMT+8, 2021-10-25 03:03 , Processed in 0.249600 second(s), 19 queries .

快速回复 返回顶部 返回列表