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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 JJJD 于 2015-6-20 17:22 编辑

我的基础测试题,和大家分享。。。
  1. package com.itheima;
  2. /**
  3. * 第五题: 编写一个延迟加载的单例设计模式
  4. *  
  5. * @author JuJiaojie
  6. *
  7. */

  8. class Student
  9. {
  10.         //将构造函数私有化
  11.         private Student(){}
  12.         
  13.         //在内部创建一个私有并静态的本类对象
  14.         private static Student s=null;
  15.         
  16.         //提供公共访问方法
  17.         public static Student getStudent()
  18.         {
  19.                 //对对象的引用进行双重判断
  20.                 if(s==null)
  21.                 {
  22.                         //同步代码块解决多线程的安全问题。
  23.                         synchronized(Student.class)
  24.                         {
  25.                                 if(s==null)
  26.                                         s=new Student();        
  27.                         }
  28.                 }
  29.                         
  30.                 return s;
  31.         }
  32.         
  33.         private int age;
  34.         public void setAge(int age)
  35.         {
  36.                 this.age=age;
  37.         }
  38.         public int getAge()
  39.         {
  40.                 return age;
  41.         }

  42. }

  43. public class  Test5
  44. {
  45.         //主函数
  46.         public static void main(String[] args)
  47.         {
  48.                 //调用方法建立对象
  49.                 Student stu1=Student.getStudent();
  50.                 Student stu2=Student.getStudent();
  51.                
  52.                 //设置年龄
  53.                 stu1.setAge(22);

  54.                 //输出语句
  55.                 System.out.println("stu1:"+stu1.getAge());
  56.                 System.out.println("stu2:"+stu2.getAge());
  57.         }
  58. }
  59. /*
  60. *打印结果为:
  61. *stu1:22
  62. *stu2:22
  63. */
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马