版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025/3/10零基础快乐学Java学生星空作品展示学生星空作品展示学生星空作品展示学生星空作品展示学生星空作品展示学生星空作品展示新的问题“一闪一闪亮晶晶,满天都是小星星……”,前面的星空过于沉寂,少了几分灵动的美,能不能模拟“星河欲转千帆舞”的场景,为沉寂的星空增添灵动的美呢?能不能模拟流星飞坠的过程呢?1项目相关知识第6章天接云涛连晓雾,星河欲转千帆舞——数组与构造方法星河欲转千帆舞2相关知识数组构造方法变量与变量值的传递星光闪烁炫丽星辰星星的闪烁流星飞坠一、星河欲转千帆舞设计思路:
首先,画出单色、静止的满天星星。
其次,改进星空,使之呈现出色彩各异、大小不同的炫丽效果。
再次,让星星闪烁起来,实现舞动的星空。
最后,实现流星飞坠。一、星河欲转千帆舞1、炫丽星辰关于星星的大小结合随机数来设置:g.setFont(newFont(“”,0,(int)(Math.random()*40)));。大小的变化会带给人距离远近有所区别的视觉效果,可以使得模拟更为真实。关于星星的颜色基于三基色来调配颜色,即:Color(intr,intg,intb);。三个参数类型均为整型,取值范围为0~255。关键代码for(inti=0;i<500;i++){//产生500颗彩色星星 g.setFont(newFont("",0,(int)(Math.random()*40)));//设置小星星的大小 g.setColor(newColor((int)(Math.random()*255), (int)(Math.random()*255), (int)(Math.random()*255))); g.drawString("*",(int)(Math.random()*1440),(int)(Math.random()*900)); }一、星河欲转千帆舞2、星星的闪烁
计算机动画是采用连续播放一系列静止图像的方法来模拟物体运动的效果,就如同十字路口的行人信号灯一样,用两个静止的动作交替出现来模拟行走效果。所以,要模拟星星闪烁的效果也需要有至少两幅作好的画来互相切换。难道再用上面的方法重画一幅?!答案是:是的!public
voidpaint(Graphicsg){ ……//paint里的其它代码 repaint();//重画方法}2、星星的闪烁一、星河欲转千帆舞repaint()重画全乱套了!星星位置定不住!一、星河欲转千帆舞2、星星的闪烁int[]x=new
int[500];//声明横坐标数组xint[]y=new
int[500];//声明纵坐标数组yint[]size=new
int[500];//声明星星尺寸的数组sizePane(){//构造方法
for(inti=0;i<500;i++){ x[i]=(int)(Math.random()*1440);//500颗星星的横坐标y[i]=(int)(Math.random()*900);//500颗星星的纵坐标size[i]=(int)(Math.random()*40);//500颗星星的大小 }}一、星河欲转千帆舞3、流星飞坠三件事:1)把月亮找回来,改进画面闪烁问题;2)用“
”替代之前星星的形状“*”;3)模拟流星飞坠的过程。1)找回月亮,改进画面闪烁①在importjava.awt.*;后面继续导入包:importjavax.swing.*;②将Framef=newFrame();改为JFramef=newJFrame();③将classPaneextendsPanel中的Panel改为JPanel
④在publicvoidpaint(Graphicsg){}方法内首位添加super.paint(g);一、星河欲转千帆舞2)用“
”替代“*”
亦可以在网上查找符号“
”所对应的ASCII码,通过类型转换来完成。如“
”所对应的ASCII码是61610,故也可以用g.drawString((char)61610+"",x[i],y[i]);来实现。一、星河欲转千帆舞3)流星飞坠
界面重画时流星的位置需要连续变化,这样才可以模拟流星是运动的。为了区别于其它小星星,可以把流星画得特殊一点。如果想要有多颗流星,还可以设定条件再次产生。g.drawString((char)61610+"",meteor_x++,meteor_y++);//实现流星位置的移动2第6章天接云涛连晓雾,星河欲转千帆舞——数组与构造方法项目相关知识相关知识数组构造方法变量与变量值的传递星光闪烁炫丽星辰星星的闪烁流星飞坠星河欲转千帆舞1二、项目相关知识1、数组数组是一种常用的数据结构,它是一组有序数据的集合。数组中的每个元素需要具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。创建方式:数据类型
数组名[]=new数据类型[数组长度];【例6-1】找出数组元素中的最大值【例6-2】数组元素从小到大排序(冒泡法)直接为每一维分配空间inta[][]=newint[2][3];从最高维开始,分别为每一维分配空间inta[][]=newint[2][];a[0]=newint[2];a[1]=newint[3];直接赋值创建intarr[][]={{5,6,7},{8,9,10,11},{2,9}};int[][]b=newint[][]{{1,2,3},{4,5}};二维数组元素的引用方式数组名[index1][index2]二、项目相关知识多维数组对象数组
数组元素的类型可以是基本数据类型,也可以是类类型。假定有一个类
People,创建对象数组:People[]
person=new
People[100];此时数组元素的值为null,需要给每个元素创建具体的实体对象,即:for
(int
i=0;
i<100;
i++)person[i]=new
People();二、项目相关知识2、构造方法
构造方法(
Constructor)是类中的一个特殊成员,每个类都有构造方法,它是用来完成通过类创建对象需要的初始化工作。构造方法的定义形式:方法名与类名相同;没有返回类型。class类名{
[修饰符]类名(){//无参构造方法
方法体;}[修饰符]类名(参数列表){//带参构造方法
方法体;}……}【例6-3】方法的重载二、项目相关知识构造方法的调用【例6-4】构造方法的相互调用【例6-5】用super调用父类构造方法【例6-6】父类构造方法的隐式调用【例6-7】组合关系下对象初始化顺序【例6-8】继承与组合关系下构造方法的调用顺序【例6-9】继承与组合关系下含有静态代码时构造方法的调用顺序继承关系下构造方法的调用规则:父类定义带参,默认无参让位,子类若需调用,首位、显式加匹配。父类若无定义,系统自动分配,此时带参调用,位置、形式全白费。示例method_2二、项目相关知识继承关系下构造方法的调用顺序:
父类只有带参构造方法时,子类必须定义自己的构造方法,带参方法不会自动调用。若子类定义含参,无论对父类含参方法是否构成覆盖,在父类中都必须显式添加无参
,super(param)除外。
示例method&chongzai父类无参子类成员子类二、项目相关知识组合功能:提高代码可重用性,使程序简洁。
定义:在新类中创建原有类的对象,或将其它类的对象作为自己的成员。例:classComputer{}
classPerson{Computerc;}classHand{}classPerson{Handh=newHand();}二、项目相关知识继承、组合关系下构造方法的调用:静态域或方法父域变量父构造方法子域变量子构造方法二、项目相关知识原则:静态一次原则;顺序礼让原则域变量与局部变量的区别。作用域修饰符创建与销毁初始值(建议赋初值)基本数据类型变量与引用数据类型变量的值的区别。变量的传递与返回。
二、项目相关知识3、变量与变量值的传递二、项目相关知识3、变量与变量值的传递【例6-10】域变量与局部变量示例【例6-11】静态变量的访问【例6-12】基本数据类型变量值的传递与返回【例6-13】引用数据类型变量值的传递与返回小结本章项目模拟了星星闪烁和流星飞坠的景象,使星空变得活泼灵动,更接近真实的星空。为使读者能够知其然并知其所以然,本章围绕项目中用到的数组、构造方法、变量及其值传递等诸多基础知识进行了全面详尽的阐述。其中包括了一维数组、多维数组及对象数组的定义和使用,构造方法的隐式和显式调用,在不同情况下构造方法的调用顺序,域变量与局部变量的使用,变量值的传递与返回等。章节内容丰富、由浅入深,大量实例便于读者边学边练,通过直观、清晰的认识和体验引发读者探究的欲望,在循序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业之间股权转让协议
- 水库大坝安全鉴定工程师考试试卷及答案
- 水产养殖水质在线监测技师(初级)考试试卷及答案
- 生物多样性调查工程师考试试卷及答案
- 高档住宅装修管理协议书
- 英文版货运代理协议书范本
- 蔬菜种子专卖 购买协议书
- 土地建筑工程合作协议书
- 公司倒闭股东协议书模板
- 矿业领域国际合作协议书
- 风力小车专业知识培训课件
- 产品生产过程质量检查记录表
- 区域森林生物量遥感估测的技术解析与多元应用探究
- MSA测量系统表格GR-R
- 中国肿瘤整合诊疗指南(2025版)结直肠癌及肛管癌更新要点解读
- 2025年资格考试-注册可靠性工程师历年参考题库含答案解析(5套典型题)
- T-GDWHA 0020-2025 一体化泵闸设计制造安装及验收规范
- 企业科技项目管理办法
- 2025年安徽省高考生物试卷(含答案)
- 干细胞与健康讲座
- 安全员c1证考试试题及答案
评论
0/150
提交评论