使用类和对象编程讲义_第1页
使用类和对象编程讲义_第2页
使用类和对象编程讲义_第3页
使用类和对象编程讲义_第4页
使用类和对象编程讲义_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

使用类和对象编程讲义目标了解内部类的定义和使用掌握定义简单内部类的方法理解程序控制结构根据程序需要设计合理的布尔表达式运用分支语句实现选择结构的程序设计内部类类可以嵌套定义,即在一个类的类体中,还可以嵌套定义另外一个类。被嵌套的类称为内部类(InnerClass),它的上级称为外部类。内部类中还可以再嵌套另一个类,在最外层的类被称为顶层类(Toplevelclass)。内部类的创建方法与外部类相似。实例代码3_7使用内部类的原因:Innerclassmethodscanaccessthedatafromthescopeinwhichtheyaredefined—includingdatathatwouldotherwisebeprivate.Innerclassescanbehiddenfromotherclassesinthesamepackage.Anonymousinnerclassesarehandywhenyouwanttodefinecallbackswithoutwritingalotofcode.匿名内部类有一种称为匿名内部类(anonymousinnerclass)的内部类,是指可以利用内部类创建不具名称的对象,并利用它访问类里的成员。匿名内部类的创建不同于普通的内部类的创建,不需要定义类名,直接用new创建对象。class

Out{

void

show(){

System.out.println("this

is

Out

showing.");

}

}

public

class

TestAnonymousInterClass{

public

static

void

main(String

args[]){

TestAnonymousInterClass

test=new

TestAnonymousInterClass();

test.show();

}

//在这个方法中构造了一个匿名内部类

private

void

show(){

Out

anonyInter=new

Out(){//

获取匿名内部类实例

void

show(){//重写父类的方法

System.out.println("this

is

Anonymous

InterClass

showing.");

}

};

anonyInter.show();//

调用其方法

}

}实例一已知圆半径,用面向对象的编程方法,计算圆面积。分析:一切数据和操作被封装在对象中,可以将圆作为一个对象来处理。这里的数据就是圆的半径,操作即计算圆面积。进一步分析:对象是类的实例化,因此需要创建一个类,属性就是半径。计算圆面积,需要获得圆的半径,而半径应该能够变化,这些操作是类的属性行为,操作在类中以方法的形式表示,因此需要在类中建立3个方法,分别用来读取半径、修改半径和计算面积。类和方法的设计:Circle作为类名,数据为Radius,创建的3个方法:getRadius()、setRadius()和computeArea()。classCircle{

privatedoubleradius;

publicCircle(doubler){

radius=r;

}

publicdoublegetRadius(){

returnradius;

}

publicvoidsetRadius(doublenewRadius){

radius=newRadius;

}

publicdoublecomputeArea(){

returnradius*radius*3.14159;

}实例一(续)publicclassEx3_10{

publicstaticvoidmain(Stringargs[]){

CriclemyCircle=newCircle(5.0);

System.out.println(“thecircleradiusis:”+myCircle.getRadius()+”thecircleareais:”+myCircleputeArea());

myCirle.setRadius(myCircle.getRadius()*2.0);

System.out.println(“thecircleradiusis:”+myCircle.getRadius()+”thecircleareais:”+myCircleputeArea());

}}实例一(续)实例代码Ex3_10

程序分析:声明了类Circle,方法getRadius、setRadius和computeArea()分别用来读取、修改半径和计算圆面积。主方法中先通过自定义构造方法circle(doubler),实例化对象myCircle并对其成员变量进行初始化。第一行输出语句中,myCircle.getRadius()获得圆的初始化半径5.0,然后由此半径计算圆面积;下一行语句myCirle.setRadius(myCircle.getRadius()*2.01);

修改了圆的半径为10.0,再据此半径计算新的圆面积。

实例2设计一个名为Fan的类模拟风扇,属性为speed、on、radius和color。假设风扇有3种固定的速度,用常数1、2、3表示慢、中、快速。写一个用户程序,程序中创建一个Fan对象,具有最大速度、半径为10、黄色、打开状态的属性。要求返回包含类中所有属性值的字符串。分析:这个问题已经给了类名和属性名,我们需要设计的是如何获得和修改4个属性值,以及如何将4个属性转换为字符串。变量、常量的定义类的定义对象的创建方法的声明实例变量(或方法)和静态变量(或方法)方法重载和构造方法内部类的定义*小结程序设计的三种基本结构面向对象程序的主体是类及对象,对象是属性及方法的封装。在设计一个对象的方法时,还要对具体的处理过程进行分析,并通过形式化的程序设计语言表示这个过程。从程序设计语言的宏观上看,处理过程呈现出顺序结构,从局部看,处理过程还要重复或者选择。Java提供了基本的程序控制语句处理这些结构。这三种基本结构是“顺序结构”、“选择结构”、“循环结构”。图4-1基本控制结构示意图基本控制结构示意图选择结构选择结构用于判断给定的条件是否满足(真或假),以决定执行某个分支程序段。Java有几种类型的选择结构语句:

1、简单if语句;

2、双分支if…else语句;

3、嵌套if语句;

4、if…elseif语句;

5、多分支switch语句等。简单if语句又称单分支if语句,它的格式如下:if(布尔表达式){语句组;}程序执行流程图如图4-2所示。执行过程是:如果布尔表达式值为真,则执行语句组,否则,不执行语句组。【例4.1】判断一个整数是否能被3整除。简单if语句双分支if…else语句if…else语句的格式如下:if(条件表达式){

语句组1;

}else{

语句组2;

}程序执行流程如图4-3所示从键盘输入一个正整数,判断其是奇数还是偶数if(i>k){if(j>k)System.ou.println("i和j大于k。");elseSystem.ou.println("i大于k,j小于或等于k。");}嵌套if语句当if语句中的执行语句又是if语句时,则构成了if语句嵌套的情形。其一般形式可表示如下:

if(表达式)if语句;或者为

if(表达式)if语句;

elseif语句;嵌套可以一层一层展开,原则上没有深度的限制。但是,嵌套的层数不宜过多。如上例If…elseif语句当有多个分支选择时,可采用if-else-if语句,其一般形式为:

if(表达式1)

语句1;

elseif(表达式2)

语句2;

elseif(表达式3)

语句3;

…elseif(表达式m)

语句m;

else

语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。switch语句switch后面括号中表达式的值必须是符合byte,char,short,int类型的常量表达式,而不能用浮点类型或long类型,也不能为一个字符串。一个switch语句可以代替多个

温馨提示

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

评论

0/150

提交评论