




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章 类与对象 程序设计方法的发展过程 小作坊设计模式硬件成本高 软件便宜 编程讲究技巧 编程人数少结构化程序设计硬件成本低 软件成本高 编程讲究可维护性 编程人数多面向对象程序设计硬件成本低 软件代码动辄百万行 软件危机 编程人数多 程序设计方法 公共数据 算法 数据结构 对象 消息 一 面向对象的基本概念 符合人们日常自然的思维习惯 降低 分解问题的难度和复杂性 提高软件的可重用性 可扩展性 可管理性 获得较高效率和较满意效果 面向对象程序设计的优点 类与对象 对象是表示现实世界中某个具体的事物 类的某一个对象则被称为是类的一个实例 是类的实例化结果 类是对对象的抽象描述 是一种抽象的数据类型 它是所有具有一定共性的对象的抽象 是创建对象的 模板 在现实世界中 是从对象提炼出类的概念 在编程时 是先有类 然后通过类来创建对象 消息 message 消息 对象之间相互请求或相互协作的途径 是要求某个对象执行某项操作的规格说明消息传递的三个要素 消息的接收者接收对象中哪个方法完成指定动作此方法需要的参数发送对象 发出消息 请求接收对象响应接收对象 收到消息后 经过解释 激活方法 予以响应 消息的格式 所谓对一个对象发信息 就是调用该对象的一个方法 对象名 方法名 参数 如 Math max a b Integer parseInt str String length 方法 method 方法是对象的行为方式 操作 对象与外界的接口作用改变对象的属性返回对象的属性 object1 object2 二 定义类 修饰符 class类名 extends父类 implements接口名 成员变量声明 构造器声明方法声明 Java实例 定义类 publicclassdogs publicStringName publicintWeight publicintHeight publicvoidShowDog Stringn intx inty Name n Weight x Height y publicvoideat System out println Dogseatbone publicvoidbark System out println Adogwillbarkatstrangers Java实例 定义类 classPoint privateintx y publicvoidsetPoint inta intb x a y b publicintgetX returnx publicintgetY returny publicStringtoString return x y 三 定义对象 修饰符 类名对象名 对象名 new类名 实参列表 或 修饰符 类名对象名 new类名 实参列表 定义对象通常包括 声明对象 创建对象和初始化对象三步 1 声明 创建对象 类名对象名 PointthePoint 注意 类属于复合数据类型 因此 在声明对象时 系统并没有为对象分配空间 用户需要应用new完成分配空间的任务 thePoint newPoint 2 引用对象 引用成员变量对象名 成员变量名引用方法对象名 方法名 参数列表 publicclassCircle floatr finaldoublePI 3 14159265 publicvoidsetR floatx r x publicdoublearea returnPI r r publicdoubleperimeter return2 PI r publicstaticvoidmain String args doublex y Circlecir newCircle cir setR 12 5f System out println 圆的面积为 cir area n圆的周长为 cir perimeter classPoint privateintx y publicvoidsetPoint inta intb x a y b publicintgetX returnx publicintgetY returny publicStringtoString return x y publicdoubledistance Pointa returnMath sqrt a getX x a getX x a getY y a getY y classPointDemo publicstaticvoidmain Stringargs Pointsource newPoint Pointtarget newPoint source setPoint 0 0 target setPoint 5 8 System out println 第一个点的坐标位置为 source toString System out println 第二个点的坐标位置为 target toString System out println 两点的距离为 source distance target 3 初始化对象 类中包含有成员变量和方法 当使用类声明并创建对象时 使用new关键字 这时系统为对象创建自己的内存区域并自动调用构造器初始化成员变量 Java实例 创建对象 classEmployee Stringname intage floatsalary voidprint System out println name 年龄为 age 月薪为 salary Employeee newEmployee e name 张立 e age 21 e salary 528 37F e print 实例变量 成员变量其生命周期与对象存在的时间相同 用构造器初始化对象 classEmployee Stringname intage floatsalary Employee Stringn inta floats name n if a 18 构造器 构造方法 构造器是一个类的方法中方法名与类名相同的方法 当使用new关键字创建一个对象 为新建对象开辟了内存空间之后 系统自动根据参数调用相应的构造器来初始化这个新建对象 构造器的主要功能是为数据成员赋初值 构造器的特点 构造器名与类名相同 构造器没有返回类型 也不是void 构造器能够简化对象数据成员的初始化操作 如果不定义构造器 此时系统会自动为该系统生成一个默认的没有任何参数的构造器 并使用缺省值来初始化实例变量 构造器不能显式地直接调用 总是和new运算符一起被调用 使用不同数量 不同类型的参数对类初始化会拥有多个构造器 这种现象称为构造器的重载 构造器可以继承 即子类可以继承父类的构造器 对象的创建和使用步骤 定义类声明引用类型的变量创建对象 把指向对象的引用放到引用类型变量中使用变量的属性和方法释放变量所占空间 Java实例 定义构造方法 publicclassStudents Stringname Stringaddress Stringgrade intscore publicvoidsetMessage Stringx1 Stringx2 Stringx3 name x1 address x2 grade x3 publicvoidsetScore inty score y publicstaticvoidmain Stringargs Studentszhang newStudents zhang setMessage 张三 西安市兴庆路1号 2003级国际贸易3班 zhang setScore 90 Studentswang newStudents wang setMessage 王五 西安市翠华路12号 2003级电子技术3班 wang setScore 85 System out println zhang name zhang address zhang grade zhang score System out println wang name wang address wang grade wang score publicclassStudent Stringname Stringaddress Stringgrade intscore Student Stringx1 Stringx2 Stringx3 inty name x1 address x2 grade x3 score y publicstaticvoidmain Stringargs Studentzhang zhang newStudent 张三 西安市兴庆路1号 2003级国际贸易3班 90 Studentwang wang newStudent 王五 西安市翠华路12号 2003级电子技术3班 85 System out println zhang name zhang address zhang grade zhang score System out println wang name wang address wang grade wang score Java实例 续 使用new创建对象时 Java系统自动调用与类同名的构造方法 this代表当前对象本身 即对当前对象的一个引用 1 用来访问当前对象的数据成员 其使用形式如下 this 数据成员 2 用来访问当前对象的成员方法 其使用形式如下 this 成员方法 参数 3 当有重载的构造方法时 用来引用同类的其他构造方法 其使用形式如下 this 参数 4 修饰符 this 如 classTestColor intr g b TestColor intr intg intb this r r this g g this b b publicclassThisTest privateintx y ThisTest inta intb this x a this y b ThisTest this 0 0 publicintgetX returnx publicintgetY returny publicStringtoString return this getX this getY publicdoubledistance ThisTestb returnMath sqrt x b getX x b getX y b getY y b getY publicstaticvoidmain Stringargs ThisTestsource newThisTest 创建Position对象sourceThisTesttarget newThisTest 5 8 创建Position对象targetSystem out println 第一个点的坐标位置为 source toString System out println 第二个点的坐标位置为 target toString System out println 两个点的距离是 source distance target 四 成员变量与方法的作用域 访问修饰符 public protected private 缺省非访问控制修饰符 static final 实例变量 不使用static修饰的变量 实例变量属于某个特定的对象不同的对象虽然有相同的属性名 但是 它们的值不相同不同的对象在调用同一个方法时 分别使用对应对象的属性 类变量 使用static修饰符修饰的变量类属性被保存在类的内存区的公共存储单元中 而不是保存在某个对象的内存区中 无论有多少个对象 该属性的内存空间只有一份类变量属于整个类 一个类的任何对象访问它时 存取到的数值都是相同的类变量属于类的作用域 可以使用publicstatic privatestatic等进行修饰 修饰符不同 可访问的层次也不同 可以通过类名加点操作符访问类变量 实例方法与类方法 类方法属于整个类 可以不通过创建对象而直接引用该方法实例方法与某一个对象联系在一起 可以访问和它相联系的对象的所有属性类方法只能访问类属性和类方法实例方法可以访问类属性 类方法 实例属性和实例方法 Java实例 static成员变量 classStaticTest intx 1 staticinty 1 publicclassStaticTester publicstaticvoidmain Stringargs StaticTest y StaticTest y 1 StaticTestm newStaticTest StaticTestn newStaticTest m x m x 3 m y m y 3 n x n x 5 n y n y 5 System out println m x m x m y m y System out println n x n x n y n y Java实例 static方法 publicclassStudentScore privateStringname privateString course 离散数学 微机原理 面向对象程序设计 privatedouble score newdouble 3 privatestaticStringc 06940521 publicStudentScore Stringn doublen1 doublen2 doublen3 name n score 0 n1 score 1 n2 score 2 n3 publicStudentScore this unknow 0 0 0 0 0 0 publicvoi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古鄂尔多斯生态环境职业学院专业技术人员招聘18人考前自测高频考点模拟试题含答案详解
- 2025河南新乡市牧野区世青学校招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 2025贵州遵义市赤水市第一批就业见习招募34人模拟试卷及答案详解(网校专用)
- 2025江西南昌市东方航空配餐有限公司招聘劳务派遣人员1人模拟试卷及答案详解(名师系列)
- 2025河南郑州市第六人民医院招聘考前自测高频考点模拟试题及答案详解(全优)
- 2025年山东职业学院公开招聘人员(28名)模拟试卷及答案详解(必刷)
- 2025黑龙江五大连池风景区宣传和统一战线工作部招聘1名公益性岗位1人考前自测高频考点模拟试题(含答案详解)
- 2025福建三明市大田县住房和城乡建设局(房地产服务中心)补招聘工作人员(政府购买服务)1人模拟试卷及答案详解(有一套)
- 2025年牡丹江市高校毕业生留牡来牡就业创业专项行动工作的模拟试卷(含答案详解)
- 2025年上海新型烟草制品研究院有限公司所属企业招聘2人(第一批次)笔试题库历年考点版附带答案详解
- 2025年安全员b证考试安徽省题库及答案解析
- 首台套申报培训课件
- GB/T 14193.1-2025液化气体气瓶充装规定第1部分:工业气瓶
- 保安安检培训课件
- 2025年肝素行业研究报告及未来行业发展趋势预测
- 2025年脚手架租赁合同3篇
- 《解剖学基础》课件-上肢骨及其连接
- 轻质燃料油安全技术说明书样本
- 小米全屋智能方案
- 杏仁粉营养分析报告
- 《多边形的面积》大单元教学设计
评论
0/150
提交评论