《的) 编写对象接口 对象接口与对象实现 OMG IDL的语法与语义 ■使用值类型 使用接口库 设计对象接口的准则 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 编写对象接口 § 对象接口与对象实现 § OMG IDL的语法与语义 § 使用值类型 § 使用接口库 § 设计对象接口的准则
《的) 41对象接口与对象实现 接口与对象实现之间是多对多关系 接口与对象分离 客户程序仅仅依赖于接口,不涉及对象实现 客户程序可采用与实现完全不同风格的程序设计语言 对象接口成为对外公布对象行为的唯一途径 ■对象接口的定义应包括对象的类型名字,对象上可 进行的操作,属性,相关的数据类型定义,常量定 义,异常定义等信息 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 4.1 对象接口与对象实现 § 接口与对象实现之间是多对多关系 § 接口与对象分离 – 客户程序仅仅依赖于接口,不涉及对象实现 – 客户程序可采用与实现完全不同风格的程序设计语言 – 对象接口成为对外公布对象行为的唯一途径 § 对象接口的定义应包括对象的类型名字,对象上可 进行的操作,属性,相关的数据类型定义,常量定 义,异常定义等信息
《的) 41.2接口定义语言 对象实现对外提供信息和服务 信息和服务是对象实现与客户程序之间的一种合约, 需严格遵循规定 接口定义语言是书写这种合约的标准语言 ■IDL是一种说明性语言,不是程序设计语言 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 4.1.2 接口定义语言 § 对象实现对外提供信息和服务 § 信息和服务是对象实现与客户程序之间的一种合约, 需严格遵循规定 § 接口定义语言是书写这种合约的标准语言 § IDL是一种说明性语言,不是程序设计语言
《的) DL的特点 面向对象 用于定义分布式服务的规格说明 定义复杂的数据类型 独立于具体的程序设计语言和特定的硬件,网络和 操作系统平台 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 IDL的特点 § 面向对象 § 用于定义分布式服务的规格说明 § 定义复杂的数据类型 § 独立于具体的程序设计语言和特定的硬件,网络和 操作系统平台
《的) 42语法与定义 词法规则 模块声明 类型的声明 常量 异常 接口 ■值类型 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 4.2 语法与定义 § 词法规则 § 模块声明 § 类型的声明 § 常量 § 异常 § 接口 § 值类型
《的) 42.1词法规则 类似 ANSI C++词法规则和预处理特性 关键字是大小写敏感;标识符大小写无关 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 4.2.1 词法规则 § 类似ANSI C++词法规则和预处理特性 § 关键字是大小写敏感;标识符大小写无关
《的) 42.2模块的声明 用于限制标识符的作用域 ■一般将逻辑上密切相关的接口,类型,常量,异常 等存放在同一模块中 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 4.2.2 模块的声明 § 用于限制标识符的作用域 § 一般将逻辑上密切相关的接口,类型,常量,异常 等存放在同一模块中
《的) 42.3类型的声明 基本数据类型(9种) 复合数据类型 枚举 结构 UNION 序列和数组 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 4.2.3 类型的声明 § 基本数据类型(9种) § 复合数据类型 – 枚举 – 结构 – UNION – 序列和数组
Personnel 文件(编辑(查看收藏(A)工具(T)帮助(士 后退⊙⊙△Q魏素回文 地址)E文档课程中间件例程Pene →转到 文件夹 大小类型 修改日期 课程 s PoliticalInfoPackage 2006-3-2102;41 电子商务概论 -EmployeesHeber java 3 KB JAVA文件 2006-3-2102;4 口随机算法 EmployeesHolder, java 2006-3-2102:41 口项目管理 E Person. java 4 KB JAVA文件 2006-3-2102:41 2006-3-2102:41 006 1 KB JAVA文件 2 KB JAVA文件 复习资料 e PoliticalInfo java 006-3-2102;4 a PoliticalIn. java 5 KB JAVA文件 2006-32102:41 PoliticalInfoHolder java 1 KB JAVA文件 006-3-2102:41 Politicaltatus KB JAVA文件 006-3-2102:41 2006-3-2102:41 GPolitical'InfoPackage Politica statusHolder, java 1 KB JAVA文件 2006-3-2102:41 试题 网页资料 文 国论文资料 国培 国书 图片 相片 项目 国学习 国娱乐 E-CF(F: D bea weblo hero Sun ONE Application Server 7 13个对象可用磁盘空间:806MB) 271KB我的电胞 回 Microsoft PowerPoint ,e回飞0n 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院
module Personnel t 和用类型别名机制定义职工姓名类型 >dedefwstring PersonName; 利用权举机制定义三种政治面貌(党员、团员、其他)的枚举类型 enum PoliticalStatus (PartyMember, LeagueMember, other] ∥用联合体机制定义不同政治面貌相应的详细信息 union Politicallnfo switch(PoliticalStatus)i case Party Member: ∥如果是党员 struct Party Status t ∥则需要填写三样信息 string party Name ∥党派名称 string join Date ∥/党时间 string position ∥担任党内职务 3 peMber case LeagueMember ∥如果是团员 struct League Status ∥则仅需填写一样信息 string join Date ∥/入团时间 3 IgMember; ∥其他政治面貌不必填写任何信息 ∥用结构机制定义职工个人信息的类型 struct Person i PersonName name; ∥姓名 boolean sex. ∥性别 short age ∥年龄 Politicallnfo politics; ∥政治面貌 ∥利用序列机制定义企业全体职员的类型 typedef sequence Employees; 山东大学计算机科学与技术学院
山东大学计算机科学与技术学院 module Personnel { // 利用类型别名机制定义职工姓名类型 typedef wstring PersonName; // 利用枚举机制定义三种政治面貌(党员、团员、其他)的枚举类型 enum PoliticalStatus {PartyMember, LeagueMember, Other}; // 利用联合体机制定义不同政治面貌相应的详细信息 union PoliticalInfo switch(PoliticalStatus) { case PartyMember: // 如果是党员 struct PartyStatus { // 则需要填写三样信息 string partyName; // 党派名称 string joinDate; // 入党时间 string position; // 担任党内职务 } ptMember; case LeagueMember: // 如果是团员 struct LeagueStatus { // 则仅需填写一样信息 string joinDate; // 入团时间 } lgMember; // 其他政治面貌不必填写任何信息 }; // 利用结构机制定义职工个人信息的类型 struct Person { PersonName name; // 姓名 boolean sex; // 性别 short age; // 年龄 PoliticalInfo politics; // 政治面貌 }; // 利用序列机制定义企业全体职员的类型 typedef sequence Employees; };