电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

清华面向对象程序设计:第03章

69页
  • 卖家[上传人]:zw****58
  • 文档编号:51732450
  • 上传时间:2018-08-16
  • 文档格式:PPT
  • 文档大小:311KB
  • / 69 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第3章抽象与封装 3.1 抽象与封装的实现技术 实现抽象和封装 类和对象一个对象包含了若干个成员变量和成员方法,它是现实世界中特定实体在程序中的具体体现。其中,成员变量反映实体的属性状态,成员方法反映实体具有的行为能力,这些内容的规格描述将由类承担,类是对具有类似特征的对象的抽象说明,对象是类的实例。对象体的构成 起/终点、 线形、粗细 和颜色 绘制 直线获取属性值设置属性值成员方法3.2 类 3.2.1 类的定义 Java语言中, 类主要有两个来源途径 Java类库 用户自定义的类 所有的类都是Object类的子类。如果在自定义类 时,没有写明父类,则默认的父类为Object。从 严 格意义上讲,Java程序中定义的所有类都是子类。最简单的类定义格式为 class ClassName ClassBody /类体 class为关键字,ClassName为定义的类名称 ClassBody为类体,包含成员变量、成员方 法、类、接口、构造方法、静态初始化器 类的UML表示一个类的UML图形表示如图 一个Box类的UML表示 BOX类的UML表示Box类的定义 public class Box

      2、 int long,width, height;void setLong(int longValue)long=longValue;void setWidth(int widthValue)width=widthValue;void setHeight (int heightValue) height = heightValue;void setBox(int longValue,int widthValue,int heightValue) long=longValue;width=widthValue;height = heightValue; int getLong()return long;int getWidth()return width;int getHeight ()return height; 成员变量和成员方法两种形式 实例变量和实例方法每个变量和方法惟一地与一个对象相关联, 即 在创建某个对象时,同时为每个对象创建所有实 例 变量的副本,关联所有的实例方法类变量和类方法(后续章节)类的嵌套定义class OutClass /顶层类 int conut;class

      3、InClass /内部类void printConut ()System.out.println(“conut: “+(+ conut);void createInObject()InClass in=new InClass(); /引用内部类in.printConut (); 类的嵌套定义public class TestInClass /用于测试内部类应用的类 public static void main(String args)OutClass outObj=new OutClass(); /创建外部类对象outObj.createInObject(); /调用创建内部类的成员方法OutClass.InClass inObj=outObj.new InClass(); /在外部创建内部类对象inObj.printConut (); 运行结果: conut:1 conut:2 JAVA类的存储有两种存储方式: 一种是将两个类定义存放在一个文件中 另一种是将两个类分别存放在两个不同的文件 中不管类定义的源代码是多个类存放在一个文件中,还是 一个类存放在一个文件中,编译后都将一个类生

      4、成一个 字节码文件,且文件名的前缀为类名,后缀为.class 含有属于另外一个类的成员变量的典型例子 class Date int year,month,day; /描述年、月、日的三个成员变量 void setYear(int y)year=y;void setMonth(int m)month=m;void setDay(int d)day=d;void setDate(int y,int m,int d)year=y;month=m;day=d;int getYear()return year;int getMonth()return month;int getDay()return day; Book类定义class Book /书籍类 String name;String author;Date publishDate; float price; /其他一些成员变量 /成员方法 Date是描述日期的类,Book是描述书籍的类。在Book类 中,设一个表示出版日期的成员变量,它属于Date类。 Book类与Date类关系可以将这两个类看成具有“整体-部分”的关系。 即 Book

      5、类是由Date类对象和一些其他类型的成员变 量 组合而成的,它们共同地反映了书籍信息。下面 是 这种关系的UML图形符号:3.2.2 成员变量的定义与初始化 实例变量的定义Modifiers DataType MemberName;Modifiers: 修饰符,决定成员变量的存储方式和访问权限DataType: 成员变量的类型MemberName:是成员变量的名称初始化实例变量主要有5个途径q每个数据数据类型有默认的初始值q可以在定义的同时赋予相应的初值q在一个成员方法中,为每个实例变量赋值q在类的构造方法中实现初始化实例变量 q利用初始化块对成员变量进行初始化 初始化块、构造方法初始化成员变量 class Point int x,y; /初始化块x=10; y=20;System.out.println(“Point initialization block“);Point(); /无参数的构造方法Point(int dx,int dy) /带两个参数的构造方法x=dx;y=dy;System.out.println(“Point construct method“); 3.2.3

      6、成员方法的定义 成员方法主要承担外部操作对象属性的 接口任务。在一个类中,至少应该包含对类 中的每个成员变量赋值,获取每个成员变量 的当前值等功能的一系列成员方法。 成员方法也包含静态(static)和非静态 两种形式,分别被称为类方法和实例方法。 实例方法 定义格式为: Modifiers ResultType MethodName(parameterList) throwsexceptions MethodBody Modifiers : 修饰符 ResultType: 方法返回类型 MethodName: 方法名称 parameterList:参数列表 throws exceptions: 列出方法能够抛出的异常种类 时间类Time的定义public class Time /时间类 int hour, minute, second; /时、分、秒void setTime(int h,int m,int s) /设置时间hour = (h0)? 0: h%24;minute=(m0):0;m%60;second=(s0):0;s%60;int getHour()return hou

      7、r; /返回时int getMinute()return minute; /返回分int getSecond()return second; /返回秒 成员方法中处理的数据主要来源途径 q传递给成员方法的参数q类中的成员变量,包括实例变量和类变量q在方法体内定义的局部变量q在方法中调用其他成员方法所得到的返回 值3.2.4 成员方法的重载 重载在一个类中,同一个名称的成员方法 可 以被定义多次的现象 。一个成员方法重载的例子在Time类,我们又增加了一个设置时间的成员 方法,但这个成员方法的参数属于String类,时 间 将以“12:04:35”的格式传递给该成员方法。 class Time int hour, minute, second;void setTime(int h,int m,int s) /参数为三个int变量hour = (h0)? 0: h%24;jinute=(m0)?0:m%60;second=(s0)?0:s%60;void setTime(String time) /参数为一个String类对 象 hour= Integer.parseInt(time.su

      8、bstring(0,1);hour=hour0?0:hour%24;minute= Integer.parseInt(time.substring(3,4);minute=minute0?0:minute%60;second= Integer.parseInt(time.substring(6,7);second=second0?0:second%60;int getHour()return hour;int getMinute()return minute;int getSecond()return second; /end of class Timepublic class TestTime /测试类 public static void main(String args) Time t=new Time(); /创建Time对象t.setTime(“13:04:20“);/调用参数为String 的setTime()方法System.out.println(t.getHour()+“:“+t.getMinute()+“:“+t.getSecond();t.setTime(20,3

      9、0,38); /调用参数为三个int的setTime()方法System.out.println(t.getHour()+“:“+t.getMinute()+“:“+t.getSecond() 将上面这两个类定义存储在一个文件名为TestTime.java中。经过编 译 生成Time.class和TestTime.class运行的结果为:13:4:2020:30:38 3.2.5 构造方法构造方法在构造类对象时使用的一种特殊的成员 方 法,其主要作用是初始化成员变量。 构造方法的定义格式为:public ClassName (parameterList)public:控制访问权限的修饰符 ClassName:类名称 parameterList:参数表 简单的例子 class Point int x,y,;Point(int dx,int dy)x=dx;y=dy; /其他的成员方法 构造方法Point(int dx,int dy)仅对两个成 员 变量x和y赋予了初值。在利用new运算符创建 Point 类对象时,系统会自动地调用这个构造方法,实 现 对实例变量初始化,而不需要用户显式地调用它 。 构造方法的重载public class Time int hour, minute, second;Time(int h,int,m,int s) /含有三个int类

      《清华面向对象程序设计:第03章》由会员zw****58分享,可在线阅读,更多相关《清华面向对象程序设计:第03章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.