Java 2 —面向对象程序设计 Chapter 7

上传人:E**** 文档编号:89388613 上传时间:2019-05-24 格式:PPT 页数:42 大小:455.50KB
返回 下载 相关 举报
Java 2 —面向对象程序设计 Chapter 7_第1页
第1页 / 共42页
Java 2 —面向对象程序设计 Chapter 7_第2页
第2页 / 共42页
Java 2 —面向对象程序设计 Chapter 7_第3页
第3页 / 共42页
Java 2 —面向对象程序设计 Chapter 7_第4页
第4页 / 共42页
Java 2 —面向对象程序设计 Chapter 7_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《Java 2 —面向对象程序设计 Chapter 7》由会员分享,可在线阅读,更多相关《Java 2 —面向对象程序设计 Chapter 7(42页珍藏版)》请在金锄头文库上搜索。

1、类的基本架构,Chapter 7,7-1 认识类,7-1-1 类的基本概念,类的发展,是为了让程序语言更能清楚地描述出日常生活的事物。,例如:几何形状中常见的长方形(rectangle),问题:,如何利用Java的类来描述长方形,使得它可以保存长方形的信息(宽与高),并且能利用此类计算出面积与周长呢?,在Java中定义一个长方形类: 一般来说,类是由数据成员与函数成员封装而成,数据成员: 每一个长方形,都有宽与高这两个属性,它们就是长方形类的数据成员。,函数成员: 对于长方形类而言,除了宽与高这两个数据之外,还可以计算它的面积与周长。用两个函数来分别完成。Java把它们封装到长方形类里,变成类

2、的函数成员。,说明: Java称这种封装于类内的函数为“方法” 。在传统的程序语言里,计算面积或周长等相关的功能通常可交由独立的函数来处理,但在面向对象程序设计(oop, object oriented programming)里,这些函数被封装在类的内部。,7-1-2 类的声明,要使用类之前,必须先定义它,然后才可利用所定义的类来声明变量,并创建对象。,class 类名称 声明field 数据类型 field名称; .,返回值的数据类型 方法名(参数1,参数2,.) 方法的主体(body) 程序语句 ; return 表达式; ,. ,定义方法的内容,声明field,模仿类定义,定义一个长方

3、形类,class Crrectangle / 定义长方形类,类名为 Crrectangle int width; / 声明数据成员width int height; / 声明数据成员height,int area() / 定义函数成员计算面积 return width*height; int perimeter() / 定义函数成员计算周长 return 2*(width+height); ,定义方法的内容,声明field,7-1-3 创建新的对象,在知道如何定义一个类之后,需要以类为模版,来创建属于该类的对象(object)。,以长方形类为例,从定义类到创建新对象,即:,“先打造一个长方形的

4、模版(定义类),再以此 模版制造长方形(创建对象)”,“由类所创建的对象,即为类的instance”,知道吗?实例( instance)是对象的别名,声明与创建对象的两个步骤 :,1、声明指向“由类所创建的对象”的变量。 2、利用new创建新的对象,并指派给先前所创建的变量。,例如 :,CRectangle rect1; / 声明指向对象的变量rect1 rect1=new CRectangle();,/ 利用new创建新的对象,并让变量rect1指向它,或者将以上两条语句合二为一:,CRectangle rect1= new CRectangle(); / 声明并创建新的对象,并让rect1

5、指向它,访问对象的内容,对象名称特定的field,例如,rect1.width; / 长方形对象rect1的宽 rect1.height; / 长方形对象rect1的高,public static void main(String args) CRectangle rect1; rect1=new CRectangle(); / 创建新的对象 rect1.width=12; / 赋值长方形对象rect1的宽 rect1.height=5; / 赋值长方形对象rect1的高 ,01 / app7_1 创建对象与field的访问 02 class CRectangle / 定义CRectangle

6、类 03 04 int width; / 声明数据成员width 05 int height; / 声明数据成员height 06 07 08 public class app7_1 09 10 public static void main(String args) 11 12 CRectangle rect1; 13 rect1=new CRectangle(); / 创建新的对象,14 15 rect1.width=10; / 赋值长方形rect1的宽 16 rect1.height=5; / 赋值长方形rect1的高 17 18 System.out.println(“width=“+

7、rect1.width); / 输出rect1.width 19 System.out.println(“height=“+rect1.height); / 输出rect1.height 20 21 /* app7-1 OUTPUT- width=10 height=5 -*/,返回值类型 方法名 (类型 参数1, 类型 参数2,.) 程序语句 ; return 表达式; ,7-2 有关方法的使用,7-2-1 定义与使用方法,method 和field一样,都是属于类的成员。field类似传统程序语言里的变量,而方法则类似于程序语言里的函数,只不过OOP的技术把它们封装在类里,形成一个独立的个

8、体。类里的方法可用如下的语法来定义:,方法的主体(body),对象要调用封装在类里的方法时,只要用下列的语法 即可:,对象名称方法名(参数1, 参数2,.),程序app7_3是app7_1的扩展,所不同的是,app7_3在类的定义里加入了area()与perimeter()两个方法。,01 / app7_3, 方法的创建 02 class CRectangle 03 04 int width; 05 int height; 06 int area() /定义函数成员area(), 用来计算面积 07 08 return width*height; 09 10 11 int perimeter(

9、) /定义函数成员perimeter(), 用来计算周长 12 13 return 2*(width+height); 14 15 16 17 public class app7_3 18 ,19 public static void main(String args) 20 21 CRectangle rect1; 22 rect1=new CRectangle(); /创建新的对象 23 24 rect1.width=10; /赋值长方形rect1的宽 25 rect1.height=5; / 赋值长方形rect1的高 26 27 System.out.println(“area=“+re

10、ct1.area(); 28 System.out.println(“perimeter=“+rect1.perimeter(); 29 30 /* app7-3 OUTPUT- area=50 perimeter=30 -*/,图7-6 方法的运行过程,7-2-3 数据成员的访问方式,在main() 方法内如果需要访问field可通过:,指向对象的变量field名称,radius与pi均为cir1的field,class app public static void main(String args) cir1.radius=2.0; cir1.pi=3.0; ,class CCircle

11、double pi=3.14; double radius; void show_area() System.out.println(“area=“+pi*radius*radius); ,如果是在类声明的内部使用这些field,则可直接 取用field的名称,可直接取用field的名称,this关键字,“this.field名称”。this即代表取用此filed的对象。,在field前面加上this,此时的this即代表取用此一filed的对象,class CCircle double pi=3.14; double radius; void show_area() System.out.p

12、rintln(“area=“+this.pi*this.radius*this.radius); ,7-2-4 在类定义的内部调用方法,在同一个类的定义里面,某一方法仍然可以直接调用其他方法,而不需加上“指向对象的变量名称”,7-3 参数的传递,当方法不需传递任何参数时,方法的括号内什么也不用填,7-3-1 调用方法并传递参数,调用方法并传递参数时,参数是置于方法的括号内来进行传递。括号内的参数可以是数值、字符串,甚至是对象。,01 / app7_7, 调用方法并传递参数 02 class CCircle / 定义类CCircle 03 04 double pi=3.14; / 将数据成员赋值

13、初值 05 double radius; 06 07 void show_area() / show_area() 方法, 显示出 半径及圆面积 08 System.out.println(“radius=“+radius); 09 System.out.println(“area=“+pi*radius*radius); 11 void setRadius(double r) / setRadius() 方法, 可用来赋值半径 12 radius=r;,13 14 15 16 public class app7_7 17 18 public static void main(String a

14、rgs) 19 20 CCircle cir1=new CCircle(); / 声明并创建新的对象 21 cir1.setRadius(2.0); / 赋值cir1的半径为2.0 cir1.show_area(); 23 24 /* app7-7 OUTPUT- radius=2.0 area=12.56 -*/,在app7_7中,第12-14行加入了setRadius() 方法,用来赋值对象的field里的成员radius。因此当执行到第22行调用cir1.setRadius(2.0)时,第12行的setRadius() 方法便会接收传进来的参数2.0 (类型为double),然后在第13行赋值field里的成员radius的值为2.0。离开setRadius() 方法之后,执行第23行,即可显示对象cir1的半径及面积。,r是局部变量,一离开此范围,变量r即属无效,01 / app7_7,调用方法并传递参数 02 class CCircle / 定义类CCircle 03 . 4 void setRadius(double r) 5 radius=r; 6 7 ,7-3-2 传递多个参数,如果要传递两个以上的参数, 只要将所有的参数置于方法的括号内可。,返回值类型 方法名(类型 参数1, 类型 参数2,.) 程序语句 ; re

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号