黑马程序员技术交流社区

标题: 关于设计模式的疑问! [打印本页]

作者: 万能砖头    时间: 2014-12-4 20:41
标题: 关于设计模式的疑问!
在入学视频讲到饿汉式和懒汉式设计模式时,一句语句不理解!
private static Student s = new Student ()
private Student(){}
public static Student getStudent
{
  retern s;
}
关于 红色 字体的 Student 是什么意思  如果getStudent 是方法名的话 方法名前面不应是 返回值类型吗?
还是说没有返回值类型 Student 意思 方法名的一部分?
作者: 大大的心    时间: 2014-12-4 21:26
返回学生类,因为是单例,要保证学生对象唯一,则对外产生方法获取这个唯一的对象,而这个学生对象的返回类型是Student。还有getStudent要加括号




package o_oriented;
/*
  饿汉式:
class Single {
     private Single(){}
     private static Single s = new Single();
     public static Single getInstance() {
           return s;
     }

    这个先初始化对象。
Single类一进内存,就已经创建好了对象。

注意:在开发时,用饿汉式。懒汉式在面试当中比较常见,通过结合多线程来解释。
*/

public class SingleDemo2 {
     public static void main(String[] args)
     {
           
     }
     
}
/*
懒汉式:
对象是方法被调用时,才初始化,也叫做对象的延时加载。
Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。双重判断机制
*/
class Single {
     private Single(){}
     private static Single s = null;
     public static Single getInstance() {
            if( s == null)
           {
                 synchronized(Single .class)
                {
                      if( s == null)
                            s = new Single();
                }
           }
            return s ;
     }
}

作者: 万能砖头    时间: 2014-12-4 21:58
大大的心 发表于 2014-12-4 21:26
返回学生类,因为是单例,要保证学生对象唯一,则对外产生方法获取这个唯一的对象,而这个学生对象的返回类 ...

嗯嗯,明白了,看以前的视频中好像没有关于类作为返回值的知识点!
你说的很详细很明白了!非常感谢。

作者: Mr.Ni    时间: 2014-12-4 21:58
Student s = new Student ()
类类型啊,类也是一种类型啊,属于引用类型
作者: 返璞归真    时间: 2014-12-4 23:50
妹纸你好,欢迎加入程序媛的大家庭

作者: HelloWorld!    时间: 2014-12-5 01:22
返回类型是Student。数据类型分两种:基本数据类型和引用数据类型。基本数据类型有四类八种。引用数据类型包括数组,接口和类。这些类型都可以作为返回类型。所谓类型,不只是java提供的现成的类型,还包括自定义的类,你用的Student类就是自定义的类型,所以Student类也是可以作为返回类型的。
作者: 曾勇    时间: 2014-12-9 18:54
Student是返回值类型,getstudent是函数名,该方法是静态方法,用类名(点)函数名就可以调用。
作者: Dr.Sparta    时间: 2014-12-9 19:12
单例就是保持该类对象的唯一性,取的对象的类型是该类,所以Student是一个返回值类型
作者: 禾青青    时间: 2014-12-11 23:43
每天都要看一看
作者: 时间都去哪了    时间: 2014-12-12 21:32
返回值类型就是Student类型,返回的是一个Student类型的对象
作者: 海阔天空ZJ    时间: 2014-12-12 21:55
首先你的getStudent后面少了大括号,其次Student,就是返回值类型,返回值类型也可以是类啊,不一定就只有int之类的。也不一定就是void




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2