达内学习心得:精心总结的面向对象(共3篇)
篇1:达内学习心得:精心总结的面向对象
达内学习心得:精心总结的面向对象
参赛学员:方钱有 获奖奖项:二等奖 什么面向对象: 个人分析觉得:在程序设计里,面向对象是一种相对说法,相对于面向过程而言的; 面向“对象“:即重点在于“对象”;而面向过程:则重点在于“过程”,简单说:就是我我们看待事物在眼光上注重点不一样;比如说:我们评判一个女孩漂亮与否,有的人看重外表,有的人则看重“心灵”,只是侧重点不一样。举个例子:把大象装进冰箱!
面向过程
面向对象
(注重一系列动作即过程)
(注重动作所操作的承受者[“对象”])
“打开”冰箱
“冰箱”打开
“装入”大象
“大象”装入
“关闭”冰箱
“冰箱”关闭
类:通俗的说类就是“一类事物的简称”,并且这些事物至少具有一点“共同的”特征.比如说:动物就是一个类
对象:就是某一类中一个具体的(就是可以具体描述出来的)东西,比如:动物(类)里的“狗”就是一个对象。(个人觉得对象相对于类而言的,因为狗又可以分好多种,‘狗’相对于‘哈士奇’是一个类,‘哈士奇’是‘狗’类的一个具体对象)
在生活中就拿描述汽车来说,我们都知道汽车都有4个轮子; 都有跑的功能 可以如下描述:
类
汽车
属性: 4个轮
功能: 跑
那么怎么在Java中描述汽车这类呢? class car{
int wheel=4;//属性: 4个轮
void run(){//方法(功能): 跑
System.out.println(“是汽车都会跑”);
} } 那么可见“出租车”应当是“汽车”这类的一个具体化(实实在在的例子即“实例”)对象,那自然出租车也就具备了汽车这类所具备的“共有”属性功能!
如何创建一个出租车对象呢?java中通过new关键字来创建一个类的实例即对象,也叫类的实例化,就是把类具体化成一个实例嘛!格式:类名
对象名 = mew 类名
()
Car
texi =
new Car();创建了“出租车”对象(实例)之后那么它也就有了如下“自己”的属性和功能。
int wheel=4;//属性: 4个轮
void run(){//功能: 跑
System.out.println(“我是出租车我也会跑”);
} 我们如何来访问对象中的它自己的属性和方法呢? 格式:对象.属性;
对象.方法名();
这一点也验证了面向对象编程的侧重点在于“对象”上;
texi.wheel;
texi.run()*********************************************************************************************************************************************************************************************************************************************
1.封装:
从字面可以解读为将东西封起来再装好。要想拿到里面的东西就得有相应的方法打开,才能拿到。
举例来说:一个房间的门如果没有上锁,那么大家都可以进去拿东西,但现在我们不想让谁都进来拿东西,我们可以将房门上锁,只对外提供一把钥匙,只有有钥匙的人才能进来,这就是“封装”现象!
在java程序中,“封装”现象如何实现呢?
可以这样实现:将类中的一些属性和方法用private关键字修饰,将他们“私有化(即不对外直接公开)”,使外部其他类不能通过创建该类对象或通过类名直接访问这些属性和方法;只对外提供公有的方法,外部其他类必须通过该类对外提供的公有方法来访问该类的相应成员;例如: class Person{
private String name;//将name属性私有化(封装)[相当于了上锁]使外部其他类不能直接访问到
public SetName(String name){//对外提供公有方法(相当于房门钥匙)供外部其他类访问到本类属性
this.name=name;
} }
2.继承:
从字面来说继承就是子父类关系的简称,就是儿子(女儿也行,好吧)会继承老爸的一些属性和行为
在java中如何描述继承关系呢?
注意:
第一得知道在java中继承是类与类之间或者是接口与接口之间才有继承关系;通过extends关键字来描述继承关系 例如:老爸这个类 class Dad{
String sex=man;
void smoke(){
System.out.println(“老子会抽烟!”);
} } 那么我们怎么来让儿子这个类继承老爸这个类呢?
class Son extends Dad{//通过extends关键字儿子这个类就继承老爸这个类了
String name;//定义自己的属性
String sex=man;//继承过来的属性,无须再定义,这里写出来是为了好理解
void smoke(){//继承过来的方法,无须再定义,这里写出来是为了好理解
System.out.println(“老子会抽烟!”);
}
void playBall(){//定义自己的方法
System.out.println(“儿子即会打球又会抽烟!”);
}
void somke(){//重写的方法
System.out.println(“我不抽20块以下的烟”);
}
void smoke(int n){//重载的方法
System.out.println(“我抽了+n+”年的烟了“);
} } 那么具有继承关系的两个类有什么特点呢?
1)子类会将父类的属性和方法继承过来,当然子类也可以自己定义的属性和方法 2)当子类自己定义的方法和父类继承过来的方法相同时会发生“重写“现象!3)父类用private关键字私有的方法是不能被继承的!4)子类可以使用super访问父类的属性和方法 5)子类通过重写父类方法,修改父类的功能 6)子类构造器一定调用父类的无参构造器 7)构造器不能继承
3.多态:
字面意思就是多种形态,也就是说一种事物同时局部多种形态.注意:要出现多态情况,那么类和类之间一定得是继承关系,或者类和接口是实现关系 我觉得:在java中多态是相对于一个对象而言的,就是父类型引用变量引用子类对象,并且父类型引用变量可以接受不同子类的对象 例如:拿上面的举例
Dad uncle=new Son();父类引用变量uncle即具备Son类的成员又具备父类的成员;这也称为“向上造型”; 多态时的特点
1)多态时访问成员变量,如uncle.name;编译时看等号左边,父类有该成员变量则编译通过,否则编译出错!运行时也看等号左边,有则运行结果 2)多态时访问方法,如uncle.smoke()编译时看等号左边,父类有该成员方法则编译通过,否则编译出错!运行时看等号右边,父类有该方法,子类没有该方法执行父类方法;父类有该方法,子类也有该方法执行子类方法 3)多态时访问静态方法 编译运行都看等号左边
******************************************************************************************************************************************************************************************************************************************************************
4.抽象(有争议):
什么是抽象?
抽象就是不具体。
一般我们把不能具体描述的东西约定俗成为“抽象”的东西。例如:我们说一个人长得很“抽象”,n你想你能具体形容描述出来么? 在JAVA中如何描述抽象这个概念呢?
我觉得在java中抽象类是由抽象方法而衍生出来的,为什么呢?
因为Java规定一个类中定义了抽象方法那这个类就跟着必须定义为抽象类,而不是因为先定义抽象类再跟着规定抽象类中的方法必须是抽象的,可能最后理解的结果是一样的但性质是不一样的(个人理解)简单说:就是有抽象方法的类一定是抽象类,但是抽象类中不一定都是抽象方法,也可以有具体方法。首先就是当我要在一个类定义一个方法时,暂时我不知道该方法具体功能是什么;等我想好了我在用他实现一个功能时我再具体描述他功能,这样我们就可以将这个方法用abstract关键字修饰定义为抽象方法
(还有一点也就是什么时候定义抽象类的?也可以说抽象类是向上抽取而来的,就是几个类据有共同的属性和方法,不想每个类都定义一次,那么定义一个公有类(即抽象类)其他类只要继承抽象类再重写方法就行!)
例如:我有一百块钱,现在我不知道怎么用,等我想好了在具体怎么用!abstract class Money{//因为有了抽象方法所以必须定义为抽象类
public abstract void buySomthing();//现在不知道怎么用,那就把它的功能代码体去掉 } //现在我饿了,想买东西吃了,我就知道怎么用了 class Hungry extends Money{
void buySomething(){
System.out.println(”我饿了,现在我要买东西吃!“)
} } 抽象类的特点
1)抽象类不能实例化 2)抽象类可以继承抽象类
3)继承抽象类必须得重写抽象方法
5.抽象类,接口,普通类 的不同点和相同点?
1)不同点:
普通类
接口
抽象类 可以直接实例化对象
不可以直接实例化对象
不可以直接实例化对象
可以定义任何成员
只能定义抽象成员方法和常量
成员方法必须定义为抽象其他和普通类相同
可以被继承
类可以实现接口,且可以实现多个接口
可以被继承
接口可以继承多个接口
抽象类有构造方法,接口中不能有
抽象类有普通成员变量,接口中没有
抽象类可以有非抽象方法,接口中不能有
抽象类可以用public、protected修饰,接口中只能public(默认public)
抽象类包含静态方法,接口中没有
接口中的变量只能是public static final,抽象类中可以是任意类型修饰
2)相同点:都可以用于描述(封装)事物的,内部类分为哪几种?分别如何创建对象? 分为 局部内部类,匿名内部类...3种
1)外部类名.内部类名 对象名=new 外部类名().new 内部类名()2)外部类名.内部类名 对象名=外部类名.new 内部类名()3)....不记得了第3种 匿名内部类
二、集合集合的定义?
集合:用来保存一组数据的数据结构
集合的父接口,实现接口,实现类,实现类的常用方法是什么?(建议以树状图画出来,便于加深印象)。
Collection
list
set
Arraylist
LinkedList
HashSet TreeSet
1.List集合
List集合的特征是元素可重复且有序 ;我们可以把他看成是一个动态数组,一般通过下标访问
ArrayList和LinkedList最常用的两个子类实现 1)list可以使用for循环遍历 for(int i=;i list.get(i);} 2)list的浅层复制 调用ArraryList.clone()方法 注意:不能使用list.clone(),clone()方法是Object类的方法,list是接口是不能继承Object类的 2.Set集合: 不重复且无序集 遍历set只能迭代器,用迭代器遍历集合遵循的操作原则:先问后取。问一次取一次。Iterator E e=it.next();} 3)map表 Map存储数据使用key-value(键-值)对的形式存储数据的。 对于Map而言,要求key值是唯一的。value值可以重复 获取数据时,使用key可以获取其对应的value 遍历map有3种方法 1)遍历key Set for(String key:keySet){ System.out.println(”key:“ + key); //可以根据每一个key获取其对应的value值 int value = map.get(key);2)遍历value Collection Iterator while(it.hasNext()){ int value = it.next();//不能采用 map.next() System.out.println(”value:“ + value);注意:通过迭代器在遍历集合的过程中,不能通过集合(即不能采用 map.next())去改变集合元素数量 3)遍历键值对 Set for(Entry //获取一组键值对的键和值 String key = entry.getKey(); int value = entry.getValue(); System.out.println(key + ”=" + value); Collection接口方法的定义 这里我主要列举 Iterator iterator()方法的使用 Collection提供的方法 Iterator iterator()方法来获取迭代器 Iterator是一个接口,定义了遍历集合应有的方法。 使用迭代器遍历集合遵循的操作原则:先问后取。问一次取一次。 问:boolean hashNext() 取:Object next() 迭代器可以将取出的数据删除掉 删:remove()将当前获取的元素删除掉。 注意:1)删除的是next()取出的元素。且只能删除一次! 2)调用1次next()后只能调用一次remove()! 这学期的面向对象课程对我来说是收获匪浅的一门课。通过老师课件的讲解,自己一些相关书籍的阅读和实践作业的完成,逐步对课程有了由浅及深的认识。 面向对象(Object Oriented,OO)是一门以实践为主课程,课程中可以分开两块OOA(面向对象系统分析)和OOD(面向对象系统设计)。OOA(面向对象系统分析)主要内容: 研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系.OOA不涉及针对具体实现采取的设计决策和有关细节,独立于具体实现的系统模型。是一个完整确切反映问题域和用户需求的系统模型。OOA的优势:复用、可扩展、可维护性、弹性。 OOD(面向对象系统设计):以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计,与具体的实现条件相关。OOD的步骤:细化重组类→细化和实现类之间的关系,明确其可见性→增加属性,指定属性的类型和可见性→分配职责,定义执行每个职责的方法→对消息驱动的系统,明确消息传递的方式→利用设计模式进行局部设计→画出详细的类图和时序图。 面向对象的分析与设计方法将致力于解决传统软件研发过程中由于软件模块化结构化程度不高带来的软件重用性差、软件可维护性差、开发出的软件不能满足用户需要等方面问题。面向对象的概念包括:对象、对象的状态和行为、类、类的结构、消息和方法。对象概念将包含对象唯一性、抽象性、继承性、多态性的重要特征。面向对象的要素包含:抽象、封装性、共享性三方面。 在设计模式的研究过程中,我们组选择的是迭代器(Iterator)的设计模式研究。完成设计研究后,我对迭代器的设计模式有了更为深刻的理解。迭代器(Iterator)提供一个方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部表示。并了解到迭代器设计模式一般在以下三类场合使用较多。 访问一个聚合对象的内容而无需暴露它的内部表示。 支持对聚合对象的多种遍历。因为遍历状态是保存在每一个迭代器对象中的。 为遍历不同的聚合结构提供一个统一的接口。根据实现方式的不同,效果上会有差别。同时还简化了容器的接口。但是在java Collection中为了提高可扩展性,容器还是提供了遍历的接口。在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。 在Java Collection的应用中,提供的具体迭代器角色是定义在容器角色中的内部类。这样便保护了容器的封装。但是同时容器也提供了遍历算法接口,你可以扩展自己的迭代器。至于迭代器模式的使用。客户程序要先得到具体容器角色,然后再通过具体容器角色得到具体迭代器角色。这样便可以使用具体迭代器角色来遍历容器了。 OOA和OOD之间没有明显的界限。OOA与OOD的不可分割性正好说明了OO思想的强大,即软件过程阶段的无缝连接,在交流与沟通中不会产生鸿沟,这是相对结构化思想的好处,因为从功能模块到某块详细控制逻辑设计两者之间的联系不是十分紧密,需要分析人员与设计人员的再沟通。 关键词:农业;学习对象;粒度;语义结构;分类法 中图分类号:TP311.52;S126 文献标志码:A 文章编号:1002-1302(2014)03-0357-03 作为一种可重用、易获取、适应性强的数字化教学内容构件,学习对象(learning object)正受到国内外教育技术界的日益关注,并已逐渐应用于高校、企事业单位的E-learning平台和知识管理系统等。学习对象的核心特性是可重用性[1],其理想状态是可供不同时间、不同地点的不同使用者出于各种目的而使用。但纵观当前各类E-learning平台,学习资源多以课程为单元进行整体设计,课程结构一般由篇或章节构成,在实际使用时缺乏可重用性和灵活性,往往造成网络教学资源的重复建设。因此,本方案拟结合客户(某大型农业企业培训学校)的实际需求[2],改变传统的课程加工模式,尝试采用基于知识模块的学习对象模型,即按照一定的粒度和方式,将知识分解为内容相对完整的模块,同时,根据具体的学习和授课需求又可以将这些模块灵活组装,针对不同学习者呈现不同的学习路径和页面风格,从而构建出一个多层次、多粒度的可重用知识体系(图1)。 1 研究背景 1.1 学习对象理论 学习对象是结合了面向对象的计算机科学思想和有关教学理论而产生的一种新型计算机辅助教学构件。学习对象较典型的定义是任何具有可重用特性并用来支持学习的数字化资源[3]。根据该定义可知,学习对象可以是一个小程序、动画、文本块、视频流或其他形式,也可以是在技术支持学习的过程中用到的多媒体内容、教学内容、学习图标、教学软件及软件工具,所涉及到的人、组织或事件等。 学习对象的核心特性是可重用性,其实现需要内容设计、技术手段和应用方法3个方面的因素保证[4]。内容设计因素是指一个学习对象应该尽量独立完成知识点或知识块的教学目的,无需过多地求助于其他教学资源或学习对象;技术设计因素是指学习对象采用数字化设计,易被搜索获取到,能够跨平台使用,并具有兼容性技术构造;应用方法因素是指学习对象要具有灵活性、适应性,如能够适应学习者的特征、实现个性化定制、能够被灵活改制等。 1.2 需求分析 本研究的目标是对客户现有知识资源进行分析评价,制定基于知识模块的可重用学习对象模型的设计原则,为实现课件模块的开发、重用和共享提供基本流程规范和设计层面的支持,从而建立具有独到竞争优势的高效在线培训体系,进而成为未来构建智能知识服务系统的数据基础。 通过分析结果可知,该农业企业培训学校知识资源的主要特点表现为:(1)信息量大。从知识的领域范围来看,涵盖了农业系统、管理、教育在内的多个领域,是一个跨领域综合的知识集合。(2)信息的表现形式多。信息形式多种多样,包括教学及相关辅助资源在内的多种知识资源,如制度、案例、记录、报告、标准、规范等。(3)信息格式复杂。包括文本、音频、图片、PPT等多种格式的信息混杂在一起。(4)信息收集地点分散。信息来源丰富,如教师的课堂录音、课件PPT、相关管理部门、网络等。(5)使用信息的用户不同。用户类型包括企业普通员工、企业管理部门、普通企业客户等。每种类型的参与者都有各自的信息需求,需要的信息范围、侧重点都不一样。(6)资源数量和资源类型不断扩展,内容不断变化更新。 根据上述资源特点,可分析得出在该项目中学习对象的应用需求,具体包括:(1)支持微型学习。微型学习是指随时随地可能发生的、可持续性地处理碎片化学习内容的学习活动,要求课程学习内容和资源的获取具有随意性,课程学习内容具有实效性、可操作性和可再生性。有别于传统的以1节课为最小粒度的学习对象,学习者可能只需要学习知识体系中一个很小的片段。(2)支持个性化学习。该需求打破了传统固有的课程结构,学习者可以根据自己的学习起点、学习层次等实际需求,进行跳跃式或查漏补缺式的学习等,同时可以根据实际学习效果自主调整学习策略和学习路径。(3)支持自主组课。组课的过程是面向特定教学群体的知识重用过程。该需求要求对知识资源的内在逻辑结构进行梳理分类,同时能够对学习对象的语义结构进行准确描述。 1.3 研究重点 根据上述应用场景得出学习对象的分析流程(图2)。由图2可知,在学习对象的分析流程中需要考虑若干问题。其中,设计合理的知识粒度层次、对其语义结构属性进行准确表达,同时对知识资源进行分类梳理,是本试验重点研究的关键问题。具体研究重点如下:(1)粒度。学习对象的力度大小是决定学习对象重用共享的重要因素。目前对学习对象的粒度缺乏明确规定[5]。粒度划分过大,重用性会降低;粒度太小,知识体系结构的复杂度会增加;如何根据用户的实际教学需要,确定适宜的学习对象粒度是大家需要解决的首要问题。(2)描述。应采用最本源的概念形式对学习对象进行简明清晰的描述,以准确表达学习对象的语义内容,对粒度划分进行指引,减少加工人员的主观性偏差,同时为教师组课提供辅助。(3)分类。为了实现学习资源的交换、共享和重用,需要对各类知识资源的逻辑关系、耦合关系进行梳理、整合,建立科学合理的类目体系,以便对资源进行分类组织。 2 模型设计 2.1 学习对象粒度 当一个学习对象规模越大时,它的内容就能越完整,更有利于实现教学目标,所表现出的教学意义也就会越高;但同时,它的灵活性与可重用性却随着规模的增大而相应变小。在综合分析用户需求及资源特点的基础上,本项目提出以知识模块为最小教学单元的多粒度学习对象模型(图3)。其中,知识模块是模型中最小粒度层级;章节指若干知识模块的组合;课时为若干章节组合所得的一节课;课程是具有完整教学意义的多个课时组合;课程体系则指一门完整知识体系的教学结构集合。学习对象各个层次的聚合特性如表1所示。 nlc202309032002 从表1可以看出,当一个学习对象规模越大时,它所包含的教学信息越多、内容越完整,更有利于实现教学目标,所表现出的教学意义也就会越高;但同时其灵活性随着粒度的增大而相应变低。 本研究所提出的知识模块是学习对象模型的基础与核心。将原始文献拆分为若干相对独立的知识模块,从而使知识点脱离原有的上下文语境,可以单独使用,也可以与其他模块组合成章节,在知识的表达和传递上更加灵活,具有更强的适应性。 将知识模块的划分原则设定为:(1)知识模块相对独立。模块内容应表达单一的知识含义,即与语言中的“语素”含义近似,模块内容只包含一个单一的知识含义,不存在一个知识模块中多重表意的现象。(2)知识模块已是最小知识单元,不能再细分。 2.2 知识模块描述 根据上述粒度原则可知,知识模块是最小知识单元,每个模块都可以从若干角度对某个概念进行说明,大家将这些角度称为概念的属性[6]。每一概念的属性和包含的知识内容就是一个知识模块,它单独表意,没有再细分的必要。有研究表明,当一个知识点的粒度处于不可再拆分状态时,其内容往往是围绕着一个特定概念的某种属性而进行论述的,换句话说,一个概念加一个属性就可以完整表达一个基本的知识内涵,因此为了实现知识处理的简单化和关系描述的标准化,可以将每个知识单元的描述概念化,即定义一个2元组:知识模块=(概念|属性)。此外,一个知识模块还有可能同时描述多个概念,对于这种情况则将知识模块定义为:知识模块=(概念1,概念2,…,概念N|属性|概念间关系)(图4)。 一篇文献中可能有多个概念,一个概念也可能有多个属性,概念和属性之间是“一对多”的关系。可以通过对现有知识资源进行分析,总结出一些通用属性以作指引。例如,从知识阐述形式的角度可以总结出定义、背景、解释、分析、比较等属性;从知识约束内容的角度可以总结出条件、目的、范围、影响、优缺点等属性。此外,一般来说,不同类型的文档都有其通用的层次结构,可以针对资源的不同类型总结其结构属性。知识模块的语义描述对用户的检索和精确定位、自主组课都至关重要,同时也为原始课程文档的拆分确定了依据和原则。 2.3 知识资源分类 为了有效地创建、组织和编列学习对象,有必要对各类知识资源的逻辑关系、耦合关系进行梳理、整合,建立科学合理的类目体系[7]。目前常用的线性分类法层次性好,能较好地反映类目之间的逻辑关系;实用方便,既符合手工处理信息的传统习惯,又便于电子计算机处理信息。但其缺点在于结构弹性较差,分类结构一经确定,不易改动。同时,当分类层次较多时,代码位数较长、效率较低。分面组配分类法可以较好地解决电子资源分类问题,而且本身建设成本较低,能够适应资源的变化,揭示细小专深的主题。但是绝对的组配也会带来类目及其不均匀,临时组合对标引要求较高的问题。因此,本方案采用半分面组配式分类法,结合线性分类法和分面组配法的优点,在有效控制分类法规模的同时,提高分类体系的适应性和灵活性,降低标引难度。 笔者以《中国农业百科全书》《中图分类法》等为参考,首先从知识内容的角度切入,以学科脉络为主要依据,按照信息资源描述的主题内容建立分类主分表,以涵盖知识资源的全部领域范围(表2)。 3 总结 本研究提出了一种面向农业领域的可重用学习对象模型,针对当前企业E-learning和知识管理系统中存在的可重用性需求,重点对学习对象的粒度、知识模块描述、知识资源分类等关键问题进行研究,为学习对象最大程度的重用和个性化学习提供支持,为下一步技术平台开发和应用奠定良好的基础。 参考文献: [1]胡小勇,祝智庭. 可重用学习对象的分类法[J]. 电化教育研究,2003(8):9-12,17. [2]李建龙,李 鹤,刚成诚,等. 5S一体化集成技术及其在农业科学中的应用进展[J]. 江苏农业科学,2010(5):26-29. [3]David A W. Connecting learning objects to instructional design theory:a definition,a metaphor,and a taxonomy[EB/OL]. [2013-05-08]. http://archive2.nmc.org/projects/lo/sap_pa_wiley.shtml. [4]祝智庭,胡小勇. 学习对象理念的发展历程[J]. 电化教育研究,2002(9):14-19. [5]Reusable Learning-Glossary[EB/OL].(2010-10-08)[2013-05-08]. http://www.innovativelearning.ca/archive/resources/examples/glossary.htm. [6]Information mappin[EB/OL]. [2013-05-08]. http://www.namahn.com/resources/documents/note-IM.pdf. [7]马张华. 信息组织[M]. 3版.北京:清华大学出版社,2008:74-130. [8]陈洪澜. 论知识分类的十大方式[J]. 科学学研究,2007,25(1):26-31.
相关文章:
高速铁路工程02-04
高速铁路论文题目02-04
高速铁路安全论文02-04
非高速铁路02-04
关于高速铁路安全管理的思考和建议02-04
公交驾驶员安全运营承诺书02-04
酒店各部门新年贺词02-04
地铁运营信息化管理论文02-04
地铁运营信息化管理论文提纲02-04
地铁施工安全管理论文02-04
篇2:达内学习心得:精心总结的面向对象
篇3:达内学习心得:精心总结的面向对象