单元3java的面向对象编单元3java的面向对象编程单元3java的面向对象编程单元3java的面向对象编程.ppt

单元3java的面向对象编单元3java的面向对象编程单元3java的面向对象编程单元3java的面向对象编程.ppt

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

单元3Java的面向对象编程 任务导入 教学目标 相关知识 类与对象 构造方法 类成员 内部类 Java实现面向对象的三大特征 类与对象 对象的示例 对象 消息传递 类中的方法 6-1 方法体 任务一第一步 对象的创建 声明 实例化 初始化 对象的使用 任务一第二步 构造方法 构造方法的特点 任务一第三步 class Employee{ int id; String name; float salary; public Employee(){ } public Employee(int x){ id = x; } 关键字this的作用 类成员— 静态成员变量 类变量 任务一的第四步—为Employee类增加静态成员变量company 类变量的应用—访问量统计 静态成员方法 — static修饰符 类方法 类方法的应用 思考 内 部 类 在类的内部定义的类称为内部类,内部类的主要作用是将逻辑上相关联的类放在一起。在解决一个复杂的问题时,可能希望创建一个类,用来辅助自己的程序方案,但是又不希望将其公开,内部类则可以实现这一点。内部类经常用于GUI(图形用户界面)的事件处理。 内部类的定义 简单的内部类定义如下: class A{ class B(){} } 此时类B就是类A的内部类,类A称为类B的外部类。 内部类的特性 名字不能与包含它的类名相同。 可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。 可以定义为abstract类型。 可以声明访问权限为private或protected。 若想在内部类中声明任何static成员,则该内部类必须声明为static类型。 内部类的定义和使用—案例3-2 Java实现面向对象的三大特征 封装性的引入 class Employee{ int id; String name; float salary; static String company=IBM; public Employee(){ } public Employee(int id){ this.id=id; } public Employee(int id,String name){ this(id); =name; } 封装性的实现 封装的示例 3-1 封装的示例 3-2 封装的示例 3-3 设置器和访问器方法 任务一的第五步,实现封装的Employee类 封装的好处 继承性 继承 继承的实现 任务一的第六步,定义Employee类的子类Manager类 继承的特点 继承的优点 子类对象的初始化 构造方法不能继承,但子类在创建对象时要对继承来自父类的成员进行初始化,因此,在创建子类时除了执行子类的构造方法外,还需要调用父类的构造方法,具体遵循原则如下: 类成员的覆盖 成员变量的覆盖 成员变量的覆盖 成员方法的覆盖 子类也可以定义与父类同名的方法,实现对父类方法的覆盖。成员方法的覆盖与成员变量的覆盖不同之处在于:子类覆盖父类的成员变量只是使它不可见,父类的同名成员变量在子类的对象中仍占据自己的空间;而子类覆盖父类的成员方法将清除父类方法所占用的空间,从而使得父类的方法在子类中不复存在。 方法重写 成员方法覆盖应注意的问题 任务一的第七步,在子类Manager中重写父类的print()方法。 final 修饰符 类对象之间的类型转换 案例3-4 子类对象转换成父类 子类对象转换成父类 说明: 1)通过运行结果可看到程序在编译时能够自动把类B的对象转换成类A的类型,运行时JVM根据实际的对象类型,调用子类的方法。 2)但是如果在程序中添加被注释的代码a.func3(),编译时就会报错。因为对于编译器来说,只分析程序的语法,只知道变量a的类型是类A,而类A又没有func3()这个方法,所以编译无法通过。 父类对象转换成子类 父类对象转换成子类需进行强制类型转换。 在进行强制类型转换之前首先判断参数的类型,只有在确保实参是子类的对象时才进行类型转换,判断对象的类型可以使用instanceof操作符,语法格式如下: 对象 instanceof 类(接口) 父类对象转换成子类 public static void callA(A a){ if(a instanceof B){ B b=(B)a; b.func1(); b.func2();

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档