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

下载本文档

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

文档简介

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

温馨提示

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

评论

0/150

提交评论