3-java面向对象.ppt_第1页
3-java面向对象.ppt_第2页
3-java面向对象.ppt_第3页
3-java面向对象.ppt_第4页
3-java面向对象.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java面向对象编程 本章内容 了解面向对象掌握类的定义掌握类的实例化会使用帮助文档掌握面向对象的三大特征熟练应用继承 重写 重载掌握访问修饰符掌握关键字static this掌握包的定义 传统编程的缺点 软件重用性差软件可维护性差开发出的软件不能满足用户需要 面向对象 面向对象是一种软件开发过程中的指导思想和系统方法所谓面向对象就是基于对象概念 以对象为中心 以类和继承为构造机制 来认识 理解 刻画客观世界和设计 构建相应的软件系统 三大特征 封装继承多态 面向对象编程 OOP ObjectedOrientedProgramming 面向对象编程掌握面向对象的困难之处在于思路的转换我们通常习惯于考虑解决问题的方法 而不是考虑将问题抽象成对象再去解决它 对象对象的状态对象的行为 我们可以把现实世界的事物抽象成对象 对象一般都有两个特征 状态和行为 也叫属性和动作 软件的对象概念是由现实世界对象抽象而来 把现实世界对象的状态保存在软件对象的变量中 现实世界对象的行为通过软件对象的方法 函数 来实现 类与对象 把相似的对象划归成一个类 类是概念模型 定义对象的所有属性和行为 类是具有共同属性和行为的对象的抽象 对象是存在的具体实体 具有明确定义的状态和行为 类与对象 上帝造人上帝首先想象出人的样子 设计阶段 类 模子 有性别 头 身子 会走路 吃饭 上帝根据想象捏了个人 实施阶段 对象 实例 亚当诞生了 类的属性和方法属性 类的变量 成员行为 类的方法 函数 我们是上帝 先设计类 再实现为对象学生类属性 姓名 性别 年龄 班级行为 说话 吃饭 上学 放学 类与对象 姓名 张三年龄 27工资 xxx教龄 8年授课方向 java体重 60千克行为 授课 评分 姓名 李四年龄 25工资 xxx教龄 9年授课方向 java体重 80千克行为 授课 评分 抽象 讲师类 属性 方法 授课 评分 姓名年龄体重工资 类与对象 从程序设计的角度看 类是面向对象程序中最基本的程序单元 类实质上定义的是一种数据类型 这种数据类型就是对象类型 所以我们可以使用类名称来声明对象变量 声明对象变量之后 还不能使用对象 必须用运算符new创建对象实体之后 才能使用对象 类的定义 访问修饰符 class类名 类型变量名 返回值类型方法名 参数列表 方法内容 属性 成员变量操作 成员函数 方法 成员方法 对象行为或操作 成员变量 对象属性 类的组成 类的基本组成getter setter方法如果类的成员变量的名字是xxx 那么为了更改或获取成员变量的值 即更改或获取属性 在类中可以使用两个方法 getXxx 用来获取属性xxx setXxx 用来修改属性xxx 类的声明 变量声明 构造方法声明 方法声明 类中的构造函数 特点方法名必须和类名相同 且没有返回值 作用执行对象初始化 缺省构造方法如果没有显式定义构造函数 系统会提供一个默认的无参构造函数 类名 一旦显式定义了构造函数 不论有参数还是无参数 系统将不再提供默认构造函数 种类无参构造函数带参数构造函数 创建对象 创建对象 new构造函数new 创建运算符 创建新的实例并分配内存 将实例初始化为缺省值 数字0对象null布尔值false字符 0 返回对象的引用 当创建一个类时 只是创建了一种新的数据类型 对象是类的一个实例 类变量 面向对象的三大特征 封装继承多态 面向对象 封装 java的类是对函数和变量的封装 封装让细节隐藏 让人更好地关注应用 封装可以实现该公开的公开 该隐藏的隐藏通过访问修饰符实现 面向对象 封装 访问限制符 public private protected 默认访问限制符标明属性或方法是否可以被调用public 公开 都可以访问 private 私有 只可在类内访问 外部不可访问 protected 受保护的 可被子类和同一个包里的其他类访问 默认friendly 同一个包里的其他类可以访问原则 字段和方法能私有的尽量私有 对私有属性通过公有的方法来访问 面向对象 封装 访问修饰符总结 面向对象 继承 继承是子类自动共享父类数据结构和方法的机制 这是类之间的一种关系 继承让软件复用和功能扩展更容易实现在继承关系下 原始的类叫父类 派生出来的类叫子类或派生类 java只支持单继承 通过关键字extends完成继承子类完全拥有父类的全部方法和属性 可以定义自己的方法和属性 可以重写父类的方法 classAextendsB类A继承类B例 继承JFrame 重写其setTitle 方法 面向对象 继承 Object类所有类的超类 superclass 如果一个类没有显示使用extends继承某个类 则自动继承自Object类supersuper 代表父类调用父类方法 super 方法 super 总是引用直接父类的构造方法 面向对象 继承 继承注意事项在子类中不能直接访问父类中的私有成员子类和父类之间应该有 IS A 关系不要滥用继承 只有在分类学上有意义时 才应该使用继承子类具有扩展父类的责任继承的目的就是为了代码复用 面向对象 继承 构造函数的调用顺序从超类到子类无论用到super 与否 都是先调用超类构造函数 再调用子类构造函数如果没用到super 将调用超类系统默认的或没有参数的构造函数 面向对象 多态 多态多态性是指相同的操作或函数 过程可作用于多种类型的对象上并获得不同的结果 不同的对象 收到同一消息可以产生不同的结果 这种现象称为多态性 两种方式方法重载一个类中出现多个同名方法 方法重写子类重新书写父类的方法 面向对象 多态 重载 overloading 概述是java实现面向对象的多态性机制的一种方式 同一个类中多个方法有相同的名字 不同的参数列表 这种情况称为方法重载 当重载方法被调用时 编译器根据参数的类型和数量来确定实际调用哪个重载方法的版本重载方式参数顺序不同参数类型不同参数个数不同返回值不同不能实现重载 面向对象 多态 方法重载示例 classCalculation publicvoidadd inta intb intc a b System out println 两个整数相加得 c publicvoidadd floata floatb floatc a b System out println 两个浮点数相加得 c publicvoidadd Stringa Stringb Stringc a b System out println 两个字符串相加得 c classCalculationDemo publicstaticvoidmain Stringargs Calculationc newCalculation c add 10 20 c add 40 0F 35 65F c add 早上 好 编译器决定调用版本 面向对象 多态 方法重写 Overriding 方法重写是发生在子类与父类之间多态性的一种表现在子类中定义某方法与其父类有相同的名称和参数 且方法的返回值类型与抛出异常的类型各自与父类的一致 我们说该方法被重写 Overriding 子类的对象使用这个方法时 将调用子类中的定义 对它而言 父类中的定义如同被 屏蔽 了在子类中调用父类被重写的方法使用super关键词 static关键字 静态方法通常 在一个类中定义一个方法为static 那就是说 无需本类的对象即可调用此方法 如下所示 调用静态方法就是 类名 方法名 如 Animal eat 一般来说 静态方法常常为应用程序中的其它类提供一些实用工具所用 在java的类库中大量的静态方法正是出于此目的而定义的 classAnimal publicstaticvoideat System out println 动物吃 static关键字 静态块静态块是在类被调用到内存后就开始执行的 它和创建对象或者main方法都没有关系 区分是构造方法和静态块执行 static 执行内容 publicclassStaticBlock1 static System out println staticblock publicstaticvoidmain String args static关键字 静态属性所有此类实例共享此静态属性 也就是说在类加载时 只分配一块存储空间 所有此类的对象都可以操控此块存储空间 当然对于final则另当别论了 看下面这段代码 classAnimal intage 0 staticintfoodCount 0 publicstaticvoidmain String args Animalcat newAnimal Animaldog newAnimal 打印catdog的age foodCount 修改cat的age和foodCount 打印catdog的age foodCount 修改dog的age和foodCount 打印catdog的age foodCount 结论 应用地点 访问 类名 属性名 this关键字 this可以看成是一个变量 每一个对象都会自动保存一个变量this 它指向这个对象自己 使用this在构造函数中调用本类其它重载的构造函数 语法 在方法中调用属性 语法 this 或者this 参数列表 this 实例变量名 java语言的包 包是一种松散的类的集合 通常把需要在一起工作的类 互相访问 放入一个包包在较大的范围内实现了OOP的封装机制 它把一组类和接口封装在一个包之内 这为管理大量的类和接口提供了方便 也有利于这些类和接口的安全java编译器将包与文件系统的目录一一对应起来 java lang packagejava lang java语言的包 package语句必须是文件中的第一条语句 也就是说 在package语句之前 除了空白和注释之外不能有任何语句 如果不加package语句 则指定为缺省包或无名包 包对应着文件系统的目录层次结构 在package语句中 用 来指明包 目录 的层次 java的默认包为java lang包 包的应用 创建自己的包 文件夹 package包名 包名一般小写 放在文件开头 如com 公司名 项目使用包java lang包中的类将被自动导入其它包中的类可以写 import包名 类名频繁使用的类 可以在文件开头导入 import 整个包 使用包名类名前缀java util Vectorvector newjava util Vecto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论