黑马程序员技术交流社区

标题: 构造器是什么作用?迭代器是什么作用 [打印本页]

作者: 王红霞    时间: 2012-6-15 10:41
标题: 构造器是什么作用?迭代器是什么作用
他们各自的意义?
作者: 逝去的记忆ヽ    时间: 2012-6-15 10:48
迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上象迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
  迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的smart pointers,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型别却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。


构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化。

例:Data类的构造器叫Data

new Data()—构造一个新对象,且初始化当前时间.
Data happyday=new Data()—把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用。

构造器特点:构造器可以有0个,一个或多个参数
构造器和类有相同的名字

一个类可以有多个构造器
构造器没有返回值
构造器总是和new运算符一起使用.
作者: 唐辉辉    时间: 2012-6-15 10:49
构造器:给类进行初始化的作用。
迭代器:可以遍历一个集合,或数组。
作者: 郑冬    时间: 2012-6-15 10:58
构造器是一个特殊的方法,这个特殊方法用于创建类的实例,Java中构造器是创建对象的重要途径(即使使用工厂模式,反射等方式创建对象,其实质依然是依赖于构造器)。构造器特点:构造器可以有0个,一个或多个参数,构造器和类有相同的名字,一个类可以有多个构造器,构造器没有返回值,构造器总是和new运算符一起使用.
迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上象迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
  迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的smart pointers,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型别却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。
作者: 薄炳鑫    时间: 2012-6-15 11:05
构造器:类用来初始化实例对象的。
根据构造器中参数的不同,我们可以在一个类中拥有多个构造器。在创建对象的时候可以根据自己的需求选着不同的构造器。
迭代器:用来遍历整个容器或者数组的一个东西。
想使用迭代器的容器,必须实现了Iterator接口。
我自己看完后的一点理解,仅供参考。
作者: 刘笑    时间: 2012-6-15 11:34
构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Platypus p1 = new Platypus(); 构造器可以用来在初始化对象时初始化数据成员,一个类可以有多个构造器。一个类的构造器的名称必须与该类的名称一致。要退出构造,可以使用返回语句“return;”。
很多人分不清构造器和方法的区别,以下可供分辨:
构造器和方法在下面三个方面的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。   返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。   最后,谈谈两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。


迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法
作者: 黄连兵    时间: 2012-6-15 11:46
现在我们定义一个类,就是月饼,要做一个月饼。
构造器好比一个做月饼的模子,(往里面传递参数)加面团,馅料等,能给你做成一个月饼出来。
迭代器好比一个勺子,可以把盛在容器里的馅料或者面粉等其他实物,一个一个捞出来。
      也可以是个夹子,方便取出容器中的物体。
作者: 李盼    时间: 2012-6-15 11:56
构造器就是类中的构造方法,其方法名和类名相同。每个类都有1个到多个构造方法,如果没有写,编译时会默认增加一个空参数的构造函数。
它没有返回值,其作用是创建对象并根据给定的参数初始化对象。new对象就是在调用这个类的构造方法。
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象
作者: 王红霞    时间: 2012-6-15 16:15
黄连兵 发表于 2012-6-15 11:46
现在我们定义一个类,就是月饼,要做一个月饼。
构造器好比一个做月饼的模子,(往里面传递参数)加面团, ...

嗯真的是很简单意解
作者: 王红霞    时间: 2012-6-15 16:16
郑冬 发表于 2012-6-15 10:58
构造器是一个特殊的方法,这个特殊方法用于创建类的实例,Java中构造器是创建对象的重要途径(即使使用工厂 ...

解释的很详细 谢谢
作者: 曾祥彬    时间: 2012-6-16 13:30
构造器就是就是用一个类文件,也就是.class文件(class文件理解成生产商品的模具)生产出一个对象(理解成商品)的时候要对这个对象做什么样的加工(对商品进行包装),一个类可以有多个构造器(一个商品的不同加工方式),不同的构造器new出的对象(生产出来的商品)会有所不同,也就是属性的值可能不一样(商品的颜色或是大小什么的不同)。
迭代器就是一个容器中有一堆的对象(仓库中的一堆商品),然后你可以讲他们一个一个的将他们列举出来,列举的时候你可以对对象做一些加工(好比放在流水线上等待加工)。
一个是产生对象,一个是查看某个地方里面的对象。




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