A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiong910627 中级黑马   /  2014-9-3 21:15  /  1830 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiong910627 于 2014-9-5 12:25 编辑

public class Test8{
   
        static class People{
                private String name;
                private String sex;
                private int age;
                //构造方法私有化,只能子在本类中对此类进行实例对象,
                //在其他的类中不能对类进行实例化,然后通过创建方法返回在本类中实例的对象。这就是单例设计模式。
                private People(String name,String sex,int age)
                {
                        super();
                        this.name=name;
                        this.sex=sex;
                        this.age=age;
                }
               
                public People()
                {
                        
                }
                        public static People p=null;
                        //首先给声明一个对象,,但是实例化,给其一个空值。
            public static People getPeople(){
                    synchronized (People.class){
                            if(p==null){
                                    p=new People();
                                    //在方法中对声明的对象,进行实例化,在判断条件成立的前提下。只要类一加载,
                                    //对象不会实例化,必须调用获得对象的方法才能实例化此对象,这就是延迟加载。
                            }
                    }
                    return p;
            }
            public String toString()
            {  
                    return "姓名:"+name+"      性别: "+sex+"      年龄: "+age;  
            }
        }
        
        public static void main(String[] args)
        {  
            
                People p1=People.getPeople();  
                People p2=People.getPeople();  
                People p3=People.getPeople();  
            
                p1=new People("王五","男",22);
                p2=new People("赵敏","女",20);
                p3=new People("张三","男",21);
            
            
            
                System.out.println(p1);   
                System.out.println(p2);  
                System.out.println(p3);  
   
        }  
}

7 个回复

正序浏览
单例设计模型你还能新建对象 还能一次新建三个还有你的构造函数怎么还有一个是public共有的
  1. public   void serName(String name){
  2. this.name=name;
  3. }
  4. public  String getName(String name){
  5. return name;
  6. }
复制代码
回复 使用道具 举报
看看代码,学习下
回复 使用道具 举报
在同步的外面再加个if判断,这样的话,效率会更高
回复 使用道具 举报
学习了,
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
学习一下
回复 使用道具 举报
入学测试题吧,我就写的毕老师视频的例子
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马