面向对象模型的数据结构之间可以__? 层次模型的数据结构是什么
面向对象的数据结构与c语言描述的数据结构有何区别?
java中提供了常用的数据结构,在util包中主要有基于数组的线性表、基于链表的线性表、栈。提供了队列的接口,具体实现集成到线性表中了,没有单独的数据结构。没有提供单独的树结构,但是Set和Collection类是基于树的类。它们用于更广泛的数据集合。
C++的STL主要提供了线性表的数据结构,以模板的方式给出。没有队列、栈和树。STL作者可能认为这些通过线性表都可以很容易实现。
另外,STL的设计目的是高速,所以其数据结构可能与一般意义上《数据结构》教授的内容有所差异。但是其提供的诸如迭代器等加速查找的数据结构,如果有兴趣,可以参考学习。
什么叫面向对象的数据模型
面向对象e799bee5baa6e58685e5aeb931333264636230数据模型的5个基本概念:对象、类、继承性、对象标识和对象包含。
对象
在面向对象数据库的设计中,我们将客观世界中的实体抽象成为对象。面向对象的方法中一个基本的信条是"任何东西都是对象"。对象可以定义为对一组信息及其操作的描述。对象之间的相互操作都得通过发送消息和执行消息完成,消息是对象之间的接口。严格地讲,在面向对象模型中,实体的任何属性都必须表示为相应对象中的一个变量和一对消息。变量用来保存属性值,一个消息用来读取属性值,另一个消息则用来更新这个值。
类
数据库中通常有很多相似的对象。"相似"是指它们响应相同的消息使用相同的方法,并有相同名称和类型的变量。对每个这样的对象单独进行定义是很浪费的,因此我们将相似的对象分组形成了一个"类"。类是相似对象的集合。类中的每个对象也称为类的实例。一个类中的所有对象共享一个公共的定义,尽管它们对变量所赋予的值不同。面向对象数据模型中类的概念相当于E-R模型中实体集的概念。
继承性
继承性允许不同类的对象共享它们公共部分的结构和特性。继承性可以用超类和子类的层次联系实现。一个子类可以继承某一个超类的结构和特性,这称为"单继承性";一个子类也可以继承多个超类的结构和特性,这称为"多继承性"。继承性是数据间的泛化/细化联系,是一种"is a"联系。
对象标识
面向对象系统提供一种"对象标识符"(OID)的概念来标识对象。OID与对象的物理存储位置无关,也与数据的描述方式和值无关。OID是惟一的。在对象创建的瞬间,由系统赋给对象,它在系统内是惟一的,在对象的生存期间,标识是不能改变的。如果要将数据转移到另外一个不同的数据库系统中,则标识符必须进行转化。
对象包含
不同类的对象之间可能存在着包含关系)。包含其它对象的对象称为复合对象。包含关系可以有多层,形成类包含层次图。包含是一种"是一部分"(is part of)联系,因此包含与继承是两种不同的数据联系。
目前,一种结合关系数据库和面向对象特点的数据库为那些希望使用具有面向对象特征的关系数据库用户提供了一条捷径。这种数据库系统称为"对象关系数据库",它是在传统关系数据模型基础上,提供元组、数组、集合一类丰富的数据类型以及处理新的数据类型操作能力,并且有继承性和对象标识等面向对象特点。
C++考试试卷,有知道的答案的留点啊。谢谢了!
1-5 DBCCD 6-10 AACBD
11-15 BADBC 16-20 ABBBA
二、 填空题(共30分,2分×15)
(1)面向对象的模型中,最基本的概念是对象和 ( 类 ) 。
(2)派生类的成员一般分为两部分,一部分是 ( 基类成员 ) ,另一部分是自己定义的新成员。
(3)假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为 ( 10 )。
(4) 对一个类中的数据成员的初始化可以通过构造函数中的( 赋值语句 )实现,也可以通过构造函数中的( 参数列表 )实现。
(5) 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为( AB::bb )。
(6) 在面向对象的程序设计中,类描述的是具有相似性质的一组 ( 对象 )
(7) 若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字( const )。
(8) 在用class定义一个类时,数据成员和成员函数的默认访问权限是( private )。
(9) C++语句const char * const p="hello" , ,所定义的指针p和它所指的内容都不能被(修改 )。
(10) 在定义一个派生类时,使用( private )关键字或者不显示地使用它则表示为( 私有 )继承。
(11)保留字( virtual )是用来声明虚函数的。
(12)( 多态性 )是指同样的消息被不同类型的对象接受时导致完全不同的行为,是对类的特定成员函数的再抽象。
(13)可以用pow表示幂,也能创造符号**来表示幂运算符。这个说法( 正确 )(正确或错误)
(14)当执行cin语句时,从键盘上输入每个数据后,必须接着输入一个( 回车或空格 )符,然后才能继续输入下一个数据。
(15)C++的输入输出是以字节( 流 )的形式实现的。
//用C++语言编写一个程序,定义一个类worker,该程序实现能为20个工人的身份证号id、待遇money两个变量从键盘赋值,并输出键盘输入结果。
#include<iostream>
using namespace std;
class worker
{
public:
void input()
{
cin>>id>>money;
}
void display()
{
cout<<id<<' '<<money<<endl;
}
private:
char id[20];
float money;
};
int main()
{
worker w[20];
for(int i=0;i<20;i++)
{
w[i].input();
w[i].display();
}
return 0;
}
说明:这是本人自己做的,应该有些错误,请高手指出。
在数据模型中我们常说的层次模型,网络模型,关系模型,面向对象模型是什么意思?
数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。
数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。
在概念数据模型中,有你提到的面向对象模型及谓词模型,还包括ER模型。
层次模型、网状模型和关系模型是三种重要的数据模型。
对应于树形图的数据模型为层次模型;对应于网状图的数据模型为网状模型。关系模型为非格式化的结构,用单一的二维表的结构表示实体及实体之间的联系。满足一定条件的二维表,称为一个关系。