收藏 分销(赏)

第5讲使用类和对象编程三.ppt

上传人:w****g 文档编号:13311807 上传时间:2026-02-27 格式:PPT 页数:21 大小:528.04KB 下载积分:8 金币
下载 相关 举报
第5讲使用类和对象编程三.ppt_第1页
第1页 / 共21页
第5讲使用类和对象编程三.ppt_第2页
第2页 / 共21页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第5讲 使用类和对象编程(三),内部类,实例,程序控制结构,选择语句,目标,了解内部类的定义和使用,掌握定义简单内部类的方法,理解程序控制结构,根据程序需要设计合理的布尔表达式,运用分支语句实现选择结构的程序设计,内部类,类可以嵌套定义,即在一个类的类体中,还可以嵌套定义另外一个类。被嵌套的类称为,内部类,(Inner Class),,它的上级称为,外部类,。内部类中还可以再嵌套另一个类,在最外层的类被称为,顶层类,(Top level class),。内部类的创建方法与外部类相似。,实例代码,3_7,使用内部类的原因:,Inner class methods can access the data from the scope in which they are definedincluding data that would otherwise be private.,Inner classes can be hidden from other classes in the same package.,Anonymous inner classes are handy when you want to define callbacks without writing a lot of code.,匿名内部类,有一种称为匿名内部类,(anonymous inner class),的内部类,是指可以利用内部类创建不具名称的对象,并利用它访问类里的成员。匿名内部类的创建不同于普通的内部类的创建,不需要定义类名,直接用,new,创建对象。,classOut,voidshow(),System.out.println(thisisOutshowing.);,publicclassTestAnonymousInterClass,publicstaticvoidmain(Stringargs),TestAnonymousInterClasstest=newTestAnonymousInterClass();,test.show();,/,在这个方法中构造了一个匿名内部类,privatevoidshow(),OutanonyInter=newOut()/,获取匿名内部类实例,voidshow()/,重写父类的方法,System.out.println(thisisAnonymousInterClassshowing.);,;,anonyInter.show();/,调用其方法,public class Ex3_10 public static void main(String args)Cricle myCircle=new Circle(5.0);System.out.println(“the circle radius is:”+myCircle.getRadius()+”the circle area is:”+myCputeArea();myCirle.setRadius(myCircle.getRadius()*2.0);System.out.println(“the circle radius is:”+myCircle.getRadius()+”the circle area is:”+myCputeArea();,实例一(续),实例代码,Ex3_10,程序分析:声明了类,Circle,,方法,getRadius,、,setRadius,和,computeArea(),分别用来读取、修改半径和计算圆面积。主方法中先通过自定义构造方法,circle(double r),,实例化对象,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,、双分支,ifelse,语句;,3,、嵌套,if,语句;,4,、,ifelse if,语句;,5,、多分支,switch,语句等。,简单,if,语句又称单分支,if,语句,它的格式如下:,if(,布尔表达式,),语句组;,程序执行流程图如图,4-2,所示。,执行过程是:,如果布尔表达式值为真,,则执行语句组,否则,,不执行语句组。,【,例,4.1】,判断一个整数是否能被,3,整除。,简单if语句,双分支ifelse语句,ifelse,语句的格式如下:,if,(条件表达式),语句组,1,;,else,语句组,2,;,程序执行流程如图,4-3,所示,从键盘输入一个正整数,判断其是奇数还是偶数,if(ik),if(jk),System.ou.println(i,和,j,大于,k,。,);,else,System.ou.println(i,大于,k,,,j,小于或等于,k,。,);,嵌套if语句,当,if,语句中的执行语句又是,if,语句时,则构成了,if,语句嵌套的情形。,其一般形式可表示如下:,if(,表达式,),if,语句;,或者为,if(,表达式,),if,语句;,else,if,语句;,嵌套可以一层一层展开,原则上没有深度的限制。但是,嵌套的层数不宜过多。如上例,Ifelse if 语句,当有多个分支选择时,可采用,if-else-if,语句,其一般形式为:,if(,表达式,1),语句,1,;,else if(,表达式,2),语句,2,;,else if(,表达式,3),语句,3,;,else if(,表达式,m),语句,m,;,else,语句,n,;,其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个,if,语句之外继续执行程序。如果所有的表达式均为假,则执行语句,n,。,然后继续执行后续程序。,switch语句,switch,语句(又称开关语句)是和,case,语句一起使用的,其功能是根据某个表达式的值在多个,case,引导的多个分支语句中选择一个来执行。它的一般格式如下:,switch,(表达式),case,判断值,1,:语句块,1;break;,case,判断值,2,:语句块,2;break;,case,判断值,3,:语句块,3;break;,case,判断值,n,:语句块,n;break;,default,:语句块,n+1,switch语句,switch,后面括号中表达式的值必须是符合,byte,,,char,,,short,,,int,类型的常量表达式,而不能用浮点类型或,long,类型,也不能为一个字符串。,一个,switch,语句可以代替多个,ifelse,语句组成的分支结构,而,switch,语句从思路上显得更清晰。,【,例,4.3】,输入一个百分制成绩,输出相应等级,等级划分如下:,100,成绩,90,,等级为“优秀”,89,成绩,80,,等级为“良”,79,成绩,70,,等级为“中”,69,成绩,60,,等级为“及格”,成绩,60,,等级为“不及格”,作业与实验,作业,习题,3,的,10,、,11,实验,Java,基本数据类型简单编程,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服