lecture06-OO_other_concept_and_java_exception.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lecture06-OO_other_concept_and_java_exception

第6章 Java面向对象概念复习 辛国栋 xinguodong@163.com 研究院529,5687921 复习:面向对象的三大特征 特征之一:封装性 封装性的含义 含义一:对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个密不可分的独立单位(即对象)中 含义二:信息隐藏。把不需要外界知道的信息隐藏起来 封装机制在程序设计中表现为: 保证外界不能任意更改其内部的属性值,也不能任意调动其内部的功能方法; 为封装在一个整体内的变量及方法规定不同级别的“可见性”或访问权限。 复习:面向对象的三大特征 特征之二:继承性 被继承的类称为父类或者超类 而经继承产生的类称为子类或者派生类 子类与父类是“Is-a”的关系 java不允许多重继承,可以采用接口(interface)来实现额外的功能 少用继承来实现复用(Reuse) 复习:面向对象的三大特征 特征之三:多态性 多态是允许程序中出现重名现象 在java中有如下两种形式的多态: 方法重载:同一个类中,允许多个方法使用同一个名字,但是方法的参数不同,完成的功能也不同。 对象多态:以父类类型声明,子类类型初始化; 复习:类与对象的关系 类与对象的关系 类实际上表示的是客观世界中某类群体的基本特征抽象; 举例来说,类与对象的关系如同图纸和根据图纸加工出来的零件的关系。 一张图纸可以加工出多个零件; 复习:类与对象的定义及使用 类图中第一层:类名 要求首字母大写 类图中第二层:属性 实际上相当于变量 非特殊情况一般设定为private型,在类图中表示为“-” 类图中第三层:方法 getter,setter 其他方法 复习:类与对象的定义及使用 public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 复习:对象的创建及使用 per 在栈内存中实际上保存的是其对应堆的内存空间访问地址 复习:封装性的详细解释 观察程序: class Person{ String name ;// 声明姓名属性 int age ;// 声明年龄属性 public void tell(){ System.out.println(姓名: + name + ,年龄: + age) ; } } public class EncDemo01{ public static void main(String arsgh[]){ Person per = new Person() ; = 张三 ; per.age = -30 ; per.tell() ; } } Person类中name和age都没有封装 程序结果: 姓名:张三,年龄:-30 对象直接访问类中的属性 per.age=-30显然是一个非法数据,现实中没有一个人的年龄是负值 但是在本程序中无法进行限制。 复习:封装性的详细解释 修改Person类: class Person{ priate String name ; private int age ; public void tell(){ System.out.println(姓名: + name + ,年龄: + age) ; } } public class EncDemo02{ public static void main(String arsgh[]){ Person per = new Person() ; = 张三 ; per.age = -30 ; per.tell() ; } } 本例中将name和age这两个属性进行更改,权限设定为private EncDemo02中出现错误 =“张三”; per.age = -30 ; 这两句根本不可能直接调用,因为权限是private,其他类无法访问private型的变量或者方法 因此必须有访问到这两个属性的方法 setter getter 复习:封装性的详细解释 用setter/getter: class Person{ private String name ; private int age ; public void setName(String n){ name = n ; } public void setAge(int

文档评论(0)

hf916589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档