- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲 抽象、封装与类
Java语言与面向对象程序设计 第四讲 抽象、封装与类 回顾上讲 Java基本数据类型 变量、常量、表达式 各种运算,优先级 程序流程控制 目标 掌握类的概念和如何设计类(重点) 掌握如何构造对象(重点) 理解抽象、封装基本面向对象思想 了解类和成员的访问控制机制(难点) 4.1 抽象 抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。 小孩子只认识自己的奶奶。 哲学中认识论:从具体到抽象,再从抽象到理论。 燕子,鸽子---?鸟; 鸟--?海鸥 4.1 抽象思想在软件设计的应用: 4.1 抽象思想在软件设计的应用: 4.1 封装 封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: 类实现了封装 类实现了封装 封装在软件工程中的意义 封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的“交叉感染”,使软件错误能够局部化,大大减少查错和排错的难度。 4.2 类 4.2 Java 的类 4.2 Java 的类 类设计的两大要素: 成员变量(或者被称为域) 成员函数或者成员方法 成员变量设计: 确定变量的数据类型: 运动员类的心率?Int\ float; 银行帐号的利率?Int\ float; 确定变量的访问存取类型: 原则尽量用private,体现数据隐藏特性; 坚决避免使用Public,打破封装性; 变量名尽量体现实际意义,增强可读性。 Width,height等。Kuandu, gaodu或aa,bb 特恐怖的语法描述 声明成员变量的格式为: [〈修饰符〉] [static] [final] [transient] 〈变量类型〉 〈变量名〉; 〈修饰符〉有private、public和protected三种。当不加任何修饰符时,定义为默认修饰符 private修饰符表示该成员变量只能被该类本身访问,任何其他类都不能访问该成员变量。 不加任何访问权限限定的成员变量属于默认访问权限。默认访问权限表示该成员变量只能被该类本身和同一个包的类访问(friendly)。 protected修饰符表示该成员变量除可以被该类本身和同一个包的类访问外,还可以被它的子类(包括同一个包中的子类和不同包中的子类)访问。 public修饰符表示该成员变量可以被所有类访问 类--成员变量 Class Tree extend Living { private float height; private float weight; …… } 类—方法(成员函数) 方法的功能与意义 4.2 对象 可以把类看作一个模板,按照类模板所定义的一个个具体的对象称作类的实例,或称作对象。 类中生产对象实例的行为 生产对象的---构造函数 C++之父Stroustrup认为编程问题来源于对变量不适当的初始化,程序bug来源于以使用资源的不适当清理。发明了用构造函数产生新对象,用析构函数来销毁对象,java沿用了构造函数(构造方法或构造子) 4.2 构造函数的种种规矩 构造函数特点: (1) 构造函数的方法名与类名相同。 (2) 构造函数没有返回类型。 (3) 构造函数的主要作用是完成对类对象的初始化工作。 (4) 构造函数一般不能由编程人员显式直接调用。 (5) 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 4.2 Java 的类—构造函数 public class name parameters ) { statements } 4.2 对象与对象变量 4.2 对象变量 4.2 对象变量 参考:core java 93页java对象变量与C++中引用的区别。 4.2 思考题 例 设计一个日期类。要求方法应包括设置日期、显示日期和判断是否是闰年 设计: 成员变量应包括年、月、日 成员方法应包括输出日期值、判断是否为闰年 。另外,每个类都要有构造方法 4.2 思考题提示 一讲Java的包--Package 包组织类的一种单位。没有很明确的目的。好象小学老师给分的值日小组。 4.2 类—修饰符 访问控制符: 类访问控制符(public, 默认[friendly]; 域和方法访问控制符(public, private, protected, private protected) 非访问控制符: abstract ,final ,volatile. 4.2 类访问控制符--Public 4.2类访问控制符--Public 4.2 类访问控制符默认型 域和方法的访问控制符 面向对象
文档评论(0)