黑马程序员技术交流社区

标题: 泛型类这的问题 [打印本页]

作者: 陈云帆    时间: 2012-7-16 16:51
标题: 泛型类这的问题
本帖最后由 陈云帆 于 2012-7-18 08:14 编辑

class Utils<QQ>
{
private QQ q;
public void setObject(QQ q)
{
  this.q=q;
}
public QQ getObject()
{
  return q;
}
}


这段代码,不是太明白,谁能详细的讲解下,视频上我也没听明白,卡克了
作者: 陆鹏    时间: 2012-7-16 17:26
本帖最后由 陆鹏 于 2012-7-16 17:28 编辑

class Utils<QQ>
{
private QQ q;
public void setObject(QQ q)
{
  this.q=q;
}
public QQ getObject()
{
  return q;
}
}

       初期你不明白的话,你可以把泛型的<QQ>理解为变量,那变量怎么赋值呢?类的泛型变量就是在建立对象的时候赋值。
比如你要建立对象,因为在上面的类中定义了泛型,泛型QQ没有指定是哪种类型,所以建立对象的时候要指明泛型是哪种类型。
如: Utils<String> test = new Utils<String>(); 等同于你的代码所有的QQ都被String赋值,就变成了这样。
class Utils
{
private String q;
public void setObject(String q)
{
  this.q=q;
}
public String getObject()
{
  return q;
}
}
当然,既然上述泛型的<QQ>看做一个变量,赋值不一定是String。


作者: 樊占江    时间: 2012-7-16 17:32
同意楼上
作者: 樊占江    时间: 2012-7-16 17:33
陆鹏 发表于 2012-7-16 17:26
初期你不明白的话,你可以把泛型的理解为变量,那变量怎么赋值呢?类的泛型变量就是在建立对象的时 ...

你都十二分了,我还一分 给我几次拿技术分的机会呗
作者: 李东升    时间: 2012-7-16 17:36
  1. class Utils<QQ>
  2. {
  3. private QQ q;//声明了一个QQ类型的变量,变量名为q。你把QQ看做跟String,int类型一样的就可以。
  4. public void setObject(QQ q)//调用这个方法,必须先实例化一个QQ类型的对象,当做这个方法的参数。
  5. {
  6.   this.q=q;//把调用这个方法实例化的QQ对象 赋值给这个类的QQ类型的变量q。
  7. }
  8. public QQ getObject() //这个方法的返回值是QQ类型的,必须申明一个QQ类型的变量才能接受。比如说QQ q1=getObject();
  9. {
  10.   return q;
  11. }
  12. }
复制代码

作者: 陆鹏    时间: 2012-7-16 18:05
今天天气真好 发表于 2012-7-16 17:33
你都十二分了,我还一分 给我几次拿技术分的机会呗

哎,我也想给呀,可是我也得努力拿分呀。
之前看视频学了一个月,起早贪黑地学也赶不上11期黑马。
这个月又重新复习一遍,之前觉得很难懂的地方复习第二遍的时候豁然开朗了。
大家一起努力吧。
作者: 陈少文    时间: 2012-7-16 18:17
建议楼主可以把QQ改成自己理解的数据类型
然后再理解
如把QQ改为String,就很好理解了
//class Utils<QQ>//表示一个泛型类
class  Utils
{
         //private QQ q;////定义一个局部变量数据类型为QQ
         private String q;

          //public void setObject(QQ q)//定义一个函数内面的参数类型为QQ
          public void setObject(String q)
         {
  
                    this.q = q;
          }
           //public QQ getObject()//定义一个函数结果的返回值类型为QQ
            public String getObject()
            {
                      return q;
            }
}

作者: 柯玲    时间: 2012-7-16 23:08
此例是一个泛型类型,QQ称为类型参数,用QQ代替未来会出现的不确定的引用数据类型,JDK1.5之前是用Object完成扩展。




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