Java面向对象高级编程.ppt

上传人:max****ui 文档编号:6366577 上传时间:2020-02-24 格式:PPT 页数:27 大小:259.55KB
返回 下载 相关 举报
Java面向对象高级编程.ppt_第1页
第1页 / 共27页
Java面向对象高级编程.ppt_第2页
第2页 / 共27页
Java面向对象高级编程.ppt_第3页
第3页 / 共27页
点击查看更多>>
资源描述
Java基础培训 第6章Java面向对象高级编程 2 6 1 1类的继承 继承的概念 继承是程序中两个类间的一种关系 指明继承关系后 父类中的属性 成员 就无须在子类中重复描述 从而实现了一定程度的代码的重用 在Java的继承层次中 一个父类可以有多个直接子类 但一个子类只能有一个直接父类 即Java不支持多重继承 3 6 1 2类的继承 类继承的实现 继承的实现格式 修饰符 class新定义的类名 extends父类名 例 classSubRectangleAextendsRectangleA 子类继承父类的原则 直接子类继承那些被声明为public或protected的直接父类成员 直接子类继承同一包中父类里未被访问控制符修饰 默认的friendly 的成员变量和成员方法 子类不能继承父类中被private修饰的成员变量和成员方法 若子类中声明了一个与父类中同名的成员变量或成员方法 则子类不再继承该父类中的该同名的成员变量或成员方法 下页介绍构造方法的继承 4 6 1 2类的继承 类继承的实现 构造方法的继承 若父类是无参数的构造方法 则子类无条件地继承该构造方法 若子类无自己的构造方法 则它将继承父类的无参数构造方法作为自己的构造方法 若子类有自己的构造方法 则在创建子类对象时 它将先执行继承自父类的无参数构造方法 然后再执行自己的构造方法 若父类是有参数的构造方法 子类可以通过在自己的构造方法中使用super关键字来调用它 但这个调用语句必须是子类构造方法的第一个可执行语句 5 6 1 3类的继承 变量的隐藏 子类对从父类那里继承来的变量重新加以定义称为变量的隐藏 当在子类中定义了与父类中同名的成员变量时 若在子类中访问此变量 则父类中的同名变量被隐藏 访问的是子类中定义的同名变量 好像此变量在父类中不存在一样 如果一定要引用父类中这个同名变量 可以使用super关键字来指示 6 6 1 4类的继承 方法的覆盖 子类继承父类后可以定义自己的成员变量和方法 当子类定义了与父类中同名的方法时 则父类中的方法被覆盖 即方法的结果是子类方法的执行结果 7 6 1 4类的继承 super和this this 代表它所在的类本身的实例对象区分形参名及成员变量名可用this来调用它所在的类本身的构造方法 super 代表它所在类的直接父类对象访问父类的成员变量及方法调用父类的构造方法 8 6 2 1类的多态 方法的重载 在同一个类中 以相同的名字定义多个方法 只是参数列表不同 即为方法的重载 它实现了Java编译时的多态性 静态多态性 也就是说 程序可以按参数决定调用对应方法 而此决定是由编译器来做的 即在调用时 Java将根据实参个数或参数类型选择匹配的方法 9 6 3 1接口 接口的概念 接口又称界面 英文名称为interface 它是用来组织应用中的各类并调节它们的相互关系的一种结构 是用来实现类间多重继承的结构 Java中的接口是一种特殊的类 它定义了若干抽象方法和常量 形成一个属性集合 该属性集合通常代表了某一组功能的实现 多重继承 是指一个子类可以有一个以上的直接父类 该子类可以继承它所有直接父类的成员 10 6 3 2接口 接口的声明 格式 public interface接口名 extends父接口名列表 接口体 常量域声明 public static final 域类型名称 常量值 抽象方法的声明 public abstract native 方法返回值类型方法名 参数列表 throws异常列表 11 6 3 2接口 接口的声明 interface是定义接口的关键字 接口名只要符合Java对标识符的规定即可 接口的访问控制符只有一个 即public 用此修饰的接口为公共接口 可以被所有类和接口使用 而没有被public修饰的接口则只能被同一个包中的其他类和接口利用 接口具有继承性 定义一个接口时可以通过extends声明该新接口是某个已经存在的父接口的派生接口 它将继承父接口的所有属性和方法 与类不同的是一个接口可以有一个以上的父接口 它们之间用逗号分隔 形成父接口列表 新接口将继承所有父接口中的属性和方法 接口体的声明是定义接口的重要部分 接口体由两部分组成 一部分是对接口中属性的声明 另一部分是对接口中方法的声明 接口中的所有属性都必须是publicstaticfinal修饰的 这是系统默认的规定 所以接口属性也可以没有任何修饰符 其效果完全相同 接口中的所有方法都必须是抽象方法 12 6 3 3接口 接口的实现 一个类要实现某个或某几个接口时 有如下的步骤和注意事项 在类的声明部分 用implements关键字声明该类将要实现哪些接口 如果实现某接口的类不是abstract的抽象类 则在类的定义部分必须实现指定接口的所有抽象方法 即为所有抽象方法定义方法体 而且方法头部分应该与接口中的定义完全一致 即有完全相同的返回值和参数列表 如果实现某接口的类是抽象类 则它可以不实现该接口所有的方法 但是对于这个抽象类任何一个非抽象的子类而言 它们父类所实现的接口中的所有抽象方法都必须有实在的方法体 这些方法体可以来自抽象的父类 也可以来自子类本身 但是不允许存在未被实现的接口方法 13 6 3 3接口 接口的实现 一个类要实现某个或某几个接口时 有如下的步骤和注意事项 一个类在实现某接口的抽象方法时 必须使用完全相同的方法头 如果所实现的方法与抽象方法有相同的方法名和不同的参数列表 则只是重载一个新的方法 而不是实现已有的抽象方法 接口的抽象方法 其访问限制符都已指定是public 所以类在实现方法时 必须显式地使用public修饰符 否则将被系统警告为缩小了接口中定义的方法和访问控制范围 14 6 4包 包将类和接口封装在一起 便于在量类和接口的管理 并有利于类和接口的安全 在同一个包中不允许出现同名类 不同包中可以存在同名类 6 4 2包的引用 导入包的关键字import 在java程序中 如果有package语句 则import语句紧接在其后 否则import语句应该在程序首位 如果没有import语句 则使用某个包中的类时 需要类的全名来引用 例如 java awt Labelprompt newjava awt Label 请输入 15 6 4 1包 包的创建 packagecom test something 必须和目录结构相吻合 16 6 4 2包 包的引用 导入包的关键字import 在java程序中 如果有package语句 则import语句紧接在其后 否则import语句应该在程序首位 如果没有import语句 则使用某个包中的类时 需要类的全名来引用 例如 java awt Labelprompt newjava awt Label 请输入 17 6 4 2包 包的引用 import包名 importjava awt awt Labelprompt newawt Label 请输入 import包名 类名 importjava awt Label Labelprompt newLabel 请输入 import包名 importjava awt Labelprompt newLabel 请输入 说明 这种形式使得包中的所有类都可以被直接用类名来访问 但同时会浪费内存的开销 18 6 5 1Java的类库 类库简介 为了简化面向对象编写程序的过程 Java系统事先设计并实现了一些体现了常用功能的标准类 如用于输入 输出的类 用于数学运算的类 用于图形用户界面设计的类 用于网络处理的类等 这些系统标准类根据实现的功能不同 可以划分成不同的集合 每个集合是一个包 合称为类库 类库以包的形式组织 是包的集合 下页介绍常见包 19 6 5 1Java的类库 类库简介 java lang包java lang包是Java语言的核心类库 包含运行Java程序必不可少的系统类 如基本数据类型 基本数学函数 字串处理 线程 异常处理类等 每个Java程序运行时 系统都会自动导入java lang包 所以这个包的加载是默认的 不需要用import语句来专门导入 java io包java io包是Java语言的标准输入 输出类库 包含了实现Java程序与操作系统 用户界面以及与其他Java程序做数据交互所使用的类 如基本输入 输出流 文件输入 输出流 过滤输入 输出流 管道输入 输出流等 凡是需要完成与操作系统有关的较低层的输入 输出操作的Java程序 都用到这个包 java util包java util包中包括了Java语言中一些低级的实用工具 如处理时间的Date类 处理变长数组的Vector类等 使用它们 开发者可以更方便 快捷地编程 20 6 5 1Java的类库 类库简介 java awt包java awt包是Java语言用来构建图形用户界面 GUI 的类库 它包括了许多界面元素和资源 主要在三个方面提供界面设计支持 低级绘图操作 如Graphics类等 图形界面组件和布局管理 如Checkbox类 Container类 LayoutManager接口等 以及界面用户交互控制和事件响应 如Event类 利用java awt包 开发人员可以很方便地编写出美观 方便标准化的应用程序界面 javax swing包javax swing包提供了创建图形用户界面元素的类 通过这些元素 编程者可以控制所写的Applet或应用程序的外观界面 该包中包含定义窗口 对话框 按钮 复选框 列表 菜单 滚动条和文本域的类 用此包来实现图形用户界面比java awt包要方便 美观 包包是Java语言用来实现网络功能的类库 如URL Socket类等 21 6 5 2Java的类库 语言基础类库 Object类Object类是Java程序中所有类的直接或间接父类 也是类库中所有类的父类 所有其他类都是从Object类派生出来的 所以Object类包含了所有Java类的公共属性 其中较主要的有以下一些方法 protectedObjectclone 用来生成当前对象的一个备份 并返回这个复制对象 publicbooleanequals Objectobj 用来比较两个对象是否相同 是则返回true publicfinalclassgetClass 用来获取当前对象所属的类信息 返回class对象 protectedvoidfinalize 用来定义回收当前对象时所需完成的清理工作 publicStringtoString 用来返回当前对象本身的有关信息 按字符串对象返回 22 6 5 2Java的类库 语言基础类库 数据类型类在第2章中已经介绍了Java的基本数据类型 如int double char long等 数据类型类与基本数据类型密切相关 每一个数据类型类都对应了一个基本数据类型 它的名字也与这个基本数据类型的名字相似不同的是数据类型类是一个类 有自己的方法 这些方法主要用来操作和处理它所对应的基本数据类型量 下页介绍数据类型类中的Integer 23 6 5 2Java的类库 语言基础类库 Integer类中定义了MAX VALUE和MIN VALUE两个属性及一系列的方法1 1MAX VALUE域和MIN VALUE域分别规定了int整型量的最大值和最小值 2构造方法 publicInteger intvalue 和publicInteger Strings 可以分别利用一个基本数据类型int量和一个字符串对象来生成一个Integer对象 3数据类型转换方法分别将当前对象所对应的int量转换成其他基本数据类型的量并返回转换后的值 publicdoubledoubleValue publicintintValue publiclonglongValue 24 6 5 2Java的类库 语言基础类库 Integer类中定义了MAX VALUE和MIN VALUE两个属性及一系列的方法2 4字符串与int量相互转化的方法 publicStringtoString 方法将当前Integer对象对应的int量转化成字符串 publicstaticintparseInt Strings 方法是类的方法 它无需创建Integer类对象 就可以方便地将字符串转化成int量 5publicstaticIntegervalueOf Strings 方法是类方法它将一个字符串转化成一个Integer对象 这个对象对应的int数值与字符串表示的数值一致 例如 下面的语句先使用valueOf 方法将字符串转化成Integer对象 再调用这个对象的intValue 方法返回其对应的int数值 其作用与上一语句完全相同 但是在处理过程中会生成一个临时的Integer对象 intI Integer valueOf 1234 intValue 25 6 5 2Java的类库 语言基础类库 Math类Math类是Java中定义的数学函数类 它提供了基本的数学运算 Math是一个final类 含有基本数学运算的方法 如指数 幂运算 取对数 平方根及三角函数等 具体使用请参考JavaDoc 26 6 5 3Java的类库 常用工具类库 GregorianCalendar日历类提供日期和时间的表示 它以阳历来计算 Vector类实现了动态分配对象列表 适用于可变对象数组的类 它的内存量可按照需要自动增加 Stack类是实现先进后出的对象栈 它是Vector的子类 它不能直接被访问 只能从栈顶压入或弹出 Dictionary类是抽象类 不能实例化去创建一个对象 它是关键字和值的数据对存储的集合 很多与数据结构和集合操作有关的类 请自行参考javadoc多加熟悉 27 本章结束
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!