黑马程序员技术交流社区
标题:
单例设计模式下的 懒汉式和饿汉式。
[打印本页]
作者:
可见
时间:
2012-3-10 11:33
标题:
单例设计模式下的 懒汉式和饿汉式。
问题是 构造函数 private student(){} 运行时提示报错;求解!
class StudentDemo
{
public static void main(String[] args)
{
Student s=new Student();
s.setAge(10);
System.out.println(s.getAge());
Student1 s1=new Student1();
s1.setAge(20);
System.out.println(s1.getAge());
}
}
class Student
{
private int age;
private static Student s =new Student();
//private Single(){}
public static Student getInstance()
{
return s;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
}
class Student1
{
private int age;
private static Student s=null;
//private Student(){}
private static Student getInstance()
{
if(s==null)
{
synchronized(Student1.class)
{
if(s==null)
s=new Student();
}
}
return s;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
}
运行报错:private student(){} 需要返回值
作者:
冯旭君
时间:
2012-3-10 11:40
private student(){} 是写在Student1文件里的。
你是否想写Student1的构造函数呢?如果是想写构造函数,请改为private Student1(){}.如果不是想写构造函数,必须加上返回类型,不然肯定会报错的。
作者:
王睿
时间:
2012-3-10 12:07
//private Student(){} 这是Student类的构造函数,写在了Student1中当然报错!
作者:
刘雷冲
时间:
2012-3-10 12:12
public class XMLConfigReader {
private static XMLConfigReader instance = null;
private XMLConfigReader() {
}
public static XMLConfigReader getXMLConfigReader() {
if(instance == null) {
instance = new XMLConfigReader();
}
return instance;
}
}
复制代码
对于单例模式,一般使用上述方法,即
1、私有的静态的成员变量
2、私有的构造函数
3、公共的静态的入口函数
使用场景:类中没有可以修改的成员变量
单例模式无法继承,无法扩展
如果读取配置文件,比较适合用单例模式
作者:
黑马张平
时间:
2012-3-10 13:15
学习学习!
作者:
袁野
时间:
2012-3-10 14:33
要想一个类 指向创建一个对象 就使用单列
1.构造方法私有化
2.创建本身对象私有化
3.提供一个静态 public 返回这个对象的 方法
作者:
王利强
时间:
2012-3-10 18:03
你这代码写的有问题啊,在类student1里应该是私有student1的构造函数,所以应该是private student1(){}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2