面向对象程序设计(Java).ppt_第1页
面向对象程序设计(Java).ppt_第2页
面向对象程序设计(Java).ppt_第3页
面向对象程序设计(Java).ppt_第4页
面向对象程序设计(Java).ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1,第四节,面向对象的概念和Java实现-2,2,主要内容,构造器缺省构造器带参数的构造器this关键字复合Java源文件组成深入研究方法返回值参数按值传递引用传递,3,复习2-1,对象状态:对象所拥有的一组外观特征行为:对象可以执行的功能类描述对象的“基本原型”具有相同状态和行为的一组对象的集合,4,复习2-2,Java实现的语法修饰符class类名访问修饰符数据类型变量名;/成员变量定义访问修饰符返回值类型方法名(参数列表)/方法定义/方法体return返回值;publicstaticvoidmain(Stringargs)类名对象名=new类名();/创建对象对象名.成员变量;/访问成员变量对象名.方法(参数列表);/访问方法,成员,5,类的定义,6,构造器,作用对类进行实例化,即创建对象为对象分配内存,初始化成员变量特点与类同名,没有返回值类型语法修饰符class类名public类名()/初始化,类名对象名=new构造器(),7,缺省构造器,如果类中没有定义构造器,Java会自动添加一个不带参数的构造器,并按默认值初始化成员变量,8,带参数的构造器,语法修饰符class类名public类名(数据类型参数1,数据类型参数2)/初始化,如果类中定义了带参数的构造器,Java不会添加缺省构造器,9,多个构造器,构造器的参数个数或参数的数据类型必须不同,10,this关键字,this关键字表示当前类对象,11,构造器小结,构造器用于创建对象,对成员变量进行初始化构造器必须与类同名,且没有返回值类型如果类中没有定义构造器,Java会自动添加一个不带参数的缺省构造器,并按默认值初始化成员变量如果类中定义了带参数的构造器,Java不会添加缺省构造器一个类可以定义0、1或多个构造器定义多个构造器时,构造器中的参数个数或参数的数据类型必须不同,12,深入研究类,修饰符class类名访问修饰符数据类型变量名;/成员变量定义public类名()/不带参数的构造器/初始化public类名(数据类型参数1,数据类型参数2)/带参数的构造器/初始化访问修饰符返回值类型方法名(数据类型参数1,数据类型参数2)/方法定义/方法体return返回值;publicstaticvoidmain(Stringargs)类名对象名=new构造器(参数列表);/创建对象对象名.成员变量;/访问成员变量对象名.方法(参数列表);/访问方法,13,复合,通过把其他类作为自己的组成部分来构建类,14,示例,定义点类Point:(x0,y0)成员变量坐标x:doublex坐标y:doubley构造器Point()Point(doublex,doubley)方法重新设置坐标值voidsetPoint(doublex,doubley)以(x,y)形式打印点坐标voidprint(),x,y,0,y=kx+b,(x0,y0),定义直线类Line:y=kx+b,15,点类Point,16,直线类Line2-1,Line:y=kx+b成员变量点:Pointp斜率:doublem构造器点类型p和斜率m的构造器Line(Pointp,doublem)两个点类型参数的构造器Line(Ponintp1,Pointp2)方法获得斜率,即K值:doublegetK()获得截距,即b值:doublegetB()以y=kx+b打印返回直线:voidprint(),17,直线类Line2-2,18,Java源文件的组成,一个Java源文件可以有多个类组成每个类都会有一个和类名相同的class文件一个Java源文件只允许有一个类拥有public修饰符,且文件名与该类相同。举例:TestLine.javaclassPointclassLinepublicclassTestLine,19,深入研究方法2-1,返回值类型原始数据类型voidsetPoint(doublex,doubley)doublegetK()voidprint()引用数据类型,20,深入研究方法2-2,参数类型原始数据类型voidsetPoint(doublex,doubley)引用数据类型,21,方法中参数的传递2-1,按值传递(call-by-value),22,方法中参数的传递2-2,引用传递(call-by-reference),23,作业,一个Java源文件是否可以有多个类,一个Java源文件编译后是否只生成一个class文件?Java源文件名字的命名有何要求?什么是构造器,其特点是什么?什么是缺省构造器,一个类中可以定义多少个构造器?,有理数是用两个整数相除来表示的数值。例如,2/3是一个有理数。编写Rational.java的新程序,在其中定义称为Rational(有理数)的类。有理数对象具有两个整数类型的成员变量,分别存储一个有理数的分子和分母。编写print方法,返回的字符串是以“分子/分母”的形式。编写main方法,创建一个Rational类型的对象,给它的两个成员变量赋值,然后打印该对象。编写构造器,它需要两个输入参数,分别初始化分子与分母两个成员变量。测试代码是否有错误,如何修改?为什么?编写一个叫做negater的方法,它为已经存在的有理数取负值。这个方法应当是一个改动方法,因此它的返回值是void。在main中测试。再编写个叫做invert的方法,使得它将原来有理数的分子分母予以交换。在main方法中测试。再编写一个reduce方法,它可以把输入的有理数改成最简分数,例如4/6的最简分数为2/3。为了实现这个功能,应该先编写一个gcd方法,以便找出分子和分母的最大公约数。在main方法中测试。编写add方法,带入两个有理数对象,然后返回一个新的有理数对象。返回对象是两个输入有理数的和。在main方法中测试。,25,类变量,在变量之前加上“static”修饰符Case:StaticDemo.java不管创建了类的多少实例,整个类中静态变量的副本只有一个引用静态变量通过引用类的任一实例通过类的名称:类名.类变量,staticintx;/将x声明为“类变量”,26,实验2-1,一张牌Card类(该类定义在mypack包下)常量:扑克牌花色、大小staticfinalStringSUITS=narf,Clubs,Diamonds,Hearts,Spades;staticfinalStringRANKS=narf,Ace,2,3,4,5,6,7,8,9,10,Jack,Queen,King;成员变量intsuit:花色下标intrank:大小下标构造器publicCard()publicCard(intsuit,intrank)方法publicvoidprintCard(Cardc):打印一张扑克牌打印格式:3ofClubs,27,实验2-2,方法判断两张扑克牌是否相同publicbooleansameCard(Cardc1,Cardc2)比较两张扑克牌大小publicintcom

温馨提示

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

评论

0/150

提交评论