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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiong910627 中级黑马   /  2014-9-3 21:15  /  1870 人查看  /  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 个回复

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