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

Chapter 9 Objects and Classes面向对象编程的基本概念面向对象编程(Object-oriented programming, OOP) 是以对象为基本单位来搭建程序的编程方法。术语对象(object)指的是实体(entity),例如学生,桌子,圆,按钮。对象具有唯一的标识,状态和行为。对象状态由一组数据域data fields(或属性properties)构成,对象的行为behavior则是由一组方法构成。对象是由类创建的,类定义了对象的数据域和方法举一个圆对象作为例子一个对象有状态和行为。如上图,状态就是半径,行为则有三个:求面积,求周长,设置半径。作为类模版Circle而言,它只是一个概念,仅作为定义使用。下面三个才是真正的对象。类Java用class来定义对象的概念,是同类型对象的总称。它本身不是实体,只是一个笼统的概念。例如学生这个概念,只有具体到某一个学生上,才能称为实体。Java使用成员变量来定义对象的数据域,使用成员方法来定义对象的行为。 此外,Java的类还提供了一些特殊的方法,称为构造方法,用来创建具体的对象实体。圆对象的Java编程实现用Unified Modeling Language (UML)表示Circle类UML是一种面向对象的建模语言,它运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模。例题:定义一个类,并创建对象学习目标:如何创建一个对象,访问对象的数据,使用对象的方法。先看源代码:程序编译后的结果是:程序的执行结果是:几点说明Java可以在一个源文件中放置多个类,例如上述例子就有两个类。但是只能有一个类是public修饰的,这个类叫主类,main函数总是被放在这个类中。TestSimpleCircle类是一个测试类,它的的功能是用于测试SimpleCircle类,所以它本身除了main函数之外,没有再定义自己的成员变量和方法。其实一个类也可以自己带一个main函数来测试自己,例如改写上一个例子为:左边的代码不全,不过已经可以看到改动的思路:先将SimpleCircle类设为主类,然后再补一个main方法,当然,源文件需要重命名。几个要点复习创建一个对象,用new关键字,例如:SimpleCircle circle1 = new SimpleCircle();SimpleCircle circle2 = new SimpleCircle(25);创建对象之后,可以使用.访问对象成员和对象方法,例如:circle1.radiuscircle2.getArea()对象必须先创建后使用,没有经过new的对象是空对象null,无法使用。再来个例子巩固一下下面是一个电视类的UML图: 测试类及运行结果构造方法构造方法是一种特殊的方法,当对象被创建的时候,构造方法会被自动调用。Circle() {}Circle(double newRadius) { radius = newRadius;}构造方法的写法构造方法的名字必须和类的名字完全相同,包括大小写。构造方法不能有返回类型,甚至连void都不能写,所以不可能出现return语句。 构造方法会在new的时候被自动调用,所以它特别适合用来做对象初始化之类的工作。构造方法经常被重载,所以new的时候可以利用传入的参数,调用不同的构造方法。利用构造方法创建对象new ClassName();例如:new Circle();new Circle(5.0); 默认构造方法如果一个类没有显式定义任何构造方法,Java会隐含定义一个没有形参,方法体为空的构造方法。这个方法称为默认构造方法。例如下面这个类,框出来的部分,如果你不写,Java也会默认偷偷补上(当然不会改动到源代码):class Circle { Circle() { }}对象引用的变量声明为了引用一个对象,必须将对象赋值给一个引用变量。声明一个对象的引用很简单,语法如下:ClassName objectRefVar;例如:Circle myCircle;这个用法其实和以前的变量声明没有区别,例如以前是这样声明一个整型变量:int i;只不过当变量类型变为对象之后,我们把这样的变量叫做引用变量,以和普通变量相区别。声明并创建对象ClassName objectRefVar = new ClassName();例如:Circle myCircle = new Circle();将对象的引用赋值给变量创建对象访问对象访问对象的数据: objectRefVar.data 例如: myCircle.radius调用对象的方法: objectRefVar.methodName(arguments) 例如: myCircle.getArea()单步执行一下声明对象引用

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档