课堂笔记.docx
- 文档编号:8418777
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:251.58KB
课堂笔记.docx
《课堂笔记.docx》由会员分享,可在线阅读,更多相关《课堂笔记.docx(21页珍藏版)》请在冰豆网上搜索。
课堂笔记
时间安排:
十天时间:
java的基础语法,面向对象,坦克大战,javaEE,flex;
1月10号
了解到美国的三大公司:
微软,谷哥,苹果
程序语言的种类:
JAVA排行第一
Servletjspaspphp
Jdk的配置:
环境变量的配置:
1.JAVA_HOME,一般是bin目录的上一级
2.PATH%JAVA_HOME%\bin
Java的解释机制:
Java源代码(.java)—》字节码(.class)—》显示结果
javac将.java编译为.classjava编译.class文件
书写最基本的helloworld程序
安装myeclipse,了解其功能等
包的命名:
组织名.公司名.项目名
Java程序执行的过程
1.启动JAVA虚拟机
2.把类加载到内存
3.解析类安全检查
4.执行java二进制机器码
5.找到main方法进行执行
JAVA的注释:
//注释一行
/**/注释多行
/**
*
**/注释多行,可用来自动生成文档(文档注释,注释要写在对应代码的前面)
注意./**/不能嵌套
关键字:
访问控制:
私有的,受保护的,公共的
类、方法和变量修饰符:
abstract声明抽象class类extends扩充
Final不可改变的implements实现interface接口native本地
New新static静态等
包相关:
import引入package包
程序控制语句:
break等
变量引用:
super等
错误处理:
catchfinallythrowthrowstry
基本类型:
booleanbytechardoublefloatintlong
标识符
JAVA标识符的命名规则:
数据类型:
基本数据类型,引用数据类型
基本(简单)数据类型有八种
JAVA是一种强类型语言
强制类型转换
基本数据类型的转换遵循水桶原则:
占用内存空间比较大的数据不能直接赋值给比它小的数据类型,反之可以。
运算符
流程控制---ifelse
---ifelseif……else
---swich…case
--while
---do…while
练习。
求1+3+5+。
。
。
。
+99
主要代码:
intsum=0;
for(inti=1;i<100;i++)
{
if(i%2!
=0)sum=sum+i;
}
Return的两种用法,第一直接返回退出,第二返回值
数组
int[]i=newint[]{1,2,3,4};//声明的时候初始化内容
int[]is=newint[4];//声明的时候初始化长度
访问数组,数组的下标是从0开始
冒泡排序:
作业:
统计任意一个数字在内存中有多少个1
packagecom.wepull.test;
publicclassTestSW{
publicintsum(intm){
int[]a=newint[60];
inti=0,sum=0;
while(m!
=0)
{
a[i]=m%2;
m=m/2;
i++;
}
for(intn=0;n<=i;n++)
{
if(a[n]==1)sum++;
}
returnsum;
}
publicstaticvoidmain(String[]arqs){
TestSWm=newTestSW();
intc;
c=m.sum(25);
System.out.println(c);
}
}
blue_wait@
交作业,交每天总结
QQ群47549079
Flex坦克和jsp与某些技术结合。
1月11日
2.flex开发坏境flashbuilder4讲解
会用到两种语言,actionScript3.0和Mxml
3.flex运行原理
a)编译过程mxmlas->as->abc(swf,swc===.jar)
b)html-template
c).actionScriptProperties
4.调试
a)必须安装flashplayer的debug
b)trace()只有在debug模式下才能启用
ActionScript语法基础
1.变量、方法及基本数据类型变量的定义,几种基本数据类型(Boolean.int.uint.Number.Date);
//定义变量的写法
publicvari:
int=0;
//方法的定义
publicfunctionfun():
int
{
return1;
}
//--定义uint类型(无符号的整型)
publicvaru:
uint=2;
//--浮点数类型
publicvarnum:
Number=3.1415;
2.字符串及其基本操作(字符串的定义字符串比较连接字符串字符)
publicfunctioninit():
void{
Alert.show(String(str==str1));
}
//--字符串
publicvarstr:
String="abc";
publicvarstr1:
String=newString("abc");
3.数组
//--数组
publicvararray:
Array=newArray();
//--数组内容的存取
publicfunctiontestArray()
{
//--向数组内装对象
array.push
(1);
array.push(2,3,4);
deletearray[3];//--将对应下标位置上的数据删掉但是下标占位不会动,数组的长度不会减少
//Alert.show(array[2]);
//--遍历数组
for(vari:
int=0;i Alert.show(array[i]); } } 4.循环控制for…in语句foreach…in语句while语句do…while语句 5.条件语句if…else语句if..elseif语句switch语句 6.Math对象math类及其常用方法 Alert.show(Math.abs(8).toString()); Alert.show(Math.random().toString());//随机数范围0-1 Alert.show(Math.round(58.4).toString());//四舍五入 Alert.show(Math.ceil(3.5).toString());//向上取整 7.数据类型装换asis 转换为FLEX组件 作业: 1.让键盘控制坦克(尝试) 2.制作素材坦克 总结 用户名: blue_wait@ 密码: dd111111 1月12日 画子弹,爆炸效果以及敌人 面向对象分析(属性,行为) 坦克 -外观 -速度 -方向 -死亡状态 -大小 -攻击力 -开火() -移动() -重生() -升级() 子弹 -长相 -大小 -速度 -方向 -射程 -死亡状态 -攻击力 -攻击() -移动() -去死() 事件监听以及相应函数方法的写法 TankObj.as packagecom.wepull.tank { importflash.events.KeyboardEvent; importflash.utils.setInterval; importmx.core.FlexGlobals; importmx.events.FlexEvent; importponents.Application; publicclassTankObjextendsTank { publicfunctionTankObj() { super(); /*加载完成后进行初始化*/ this.addEventListener(FlexEvent.CREATION_COMPLETE,init); } /**速度*/ publicvarsp: Number=5; /** *U: 上 *UR: 上右 *R: 右 *RD: 右下 *D: 下 *DL: 下左 *L: 左 *LU: 左上 *"": 停止 *方向*/ publicvarasp: String=""; /**炮筒方向*/ publicvarptAsp: String="U"; /**死亡状态 *使用继承而来的可视属性表示 **/ /**大小 *使用继承而来的高度宽度 **/ /**初始化 *定高宽 *循环移动 *添加键盘控制坦克的行动*/ publicfunctioninit(e: FlexEvent): void{ this.height=100; this.width=70; setInterval(domove,40); this.stage.addEventListener(KeyboardEvent.KEY_DOWN,onkey); this.stage.addEventListener(KeyboardEvent.KEY_UP,onkeyend); } /**开火 *1.产生一个子弹 *2.坐标同步 *3.方向同步*/ publicfunctionfire(): void{ /**获得application,无法获得application的值,有错*/ varapplication: Application=Application(FlexGlobals.topLevelApplication); varbul: BulletObj=newBulletObj(); application.addElement(bul); bul.x=this.x; bul.y=this.y; bul.asp=this.ptAsp;//子弹方向与炮筒方法同步 } /**移动 *根据速度和方向*/ publicfunctiondomove(): void{ //--控制炮口方向 if(asp! =""){ this.ptAsp=this.asp; } if(asp=="U"){//--上 this.y-=sp; this.rotationZ=0; }elseif(asp=="UR"||asp=="RU"){//--上右 this.x+=sp; this.y-=sp; this.rotationZ=45; } elseif(asp=="R"){//--右 this.x+=sp; this.rotationZ=90; } elseif(asp=="RD"||asp=="DR"){//--右下 this.x+=sp; this.y+=sp; this.rotationZ=135; } elseif(asp=="D"){//--下 this.y+=sp; this.rotationZ=180; } elseif(asp=="DL"||asp=="LD"){//--下左 this.x-=sp; this.y+=sp; this.rotationZ=225; } elseif(asp=="L"){//--左 this.x-=sp; this.rotationZ=270; } elseif(asp=="LU"||asp=="UL"){//--左上 this.x-=sp; this.y-=sp; this.rotationZ=315; } } /**去死*/ publicfunctiondead(): void{ } /**重生*/ publicfunctionrelive(): void{ } /**当键盘压下,改变坦克的方向*/ publicfunctiononkey(e: KeyboardEvent): void{ varkey: int=e.keyCode; /**用上下左右控制*/ /*if(key==38){ this.asp="U"; }elseif(key==39){ this.asp="R"; }elseif(key==40){ this.asp="D"; }elseif(key==37){ this.asp="L"; }*/ /**用WASD控制*/ if(key==87&&asp.length<2&&asp.indexOf("U")==-1){ this.asp+="U"; }elseif(key==68&&asp.length<2&&asp.indexOf("R")==-1){ this.asp+="R"; }elseif(key==83&&asp.length<2&&asp.indexOf("D")==-1){ this.asp+="D"; }elseif(key==65&&asp.length<2&&asp.indexOf("L")==-1){ this.asp+="L"; }elseif(key==74){//--按j键开火 fire(); } } /**只要有键盘弹起方向为无 *就将对应的方向的字符从asp中清除*/ publicfunctiononkeyend(e: KeyboardEvent): void{ varkey: int=e.keyCode; if(key==87){ asp=asp.replace("U",""); }elseif(key==68){ asp=asp.replace("R",""); }elseif(key==83){ asp=asp.replace("D",""); }elseif(key==65){ asp=asp.replace("L",""); } } } } BulletObj.as packagecom.wepull.tank { importflash.utils.setInterval; importmx.events.FlexEvent; publicclassBulletObjextendsBullet { publicfunctionBulletObj() { super(); this.addEventListener(FlexEvent.CREATION_COMPLETE,init); } /**速度*/ publicvarsp: Number=10; /**方向*/ publicvarasp: String=""; /**死亡状态用可视元素替代*/ /**初始化 *大小初始化 *移动 **/ publicfunctioninit(e: FlexEvent): void{ this.height=60; this.width=20; setInterval(domove,40); } /**移动AI*/ publicfunctiondomove(): void{ if(asp=="U"){//--上 this.y-=sp; this.rotationZ=0; }elseif(asp=="UR"||asp=="RU"){//--上右 this.x+=sp; this.y-=sp; this.rotationZ=45; } elseif(asp=="R"){//--右 this.x+=sp; this.rotationZ=90; } elseif(asp=="RD"||asp=="DR"){//--右下 this.x+=sp; this.y+=sp; this.rotationZ=135; } elseif(asp=="D"){//--下 this.y+=sp; this.rotationZ=180; } elseif(asp=="DL"||asp=="LD"){//--下左 this.x-=sp; this.y+=sp; this.rotationZ=225; } elseif(asp=="L"){//--左 this.x-=sp; this.rotationZ=270; } elseif(asp=="LU"||asp=="UL"){//--左上 this.x-=sp; this.y-=sp; this.rotationZ=315; } } /**去死*/ publicfunctiondead(): void{ } } } Wepull_tank_01.mxml xmlversion="1.0"encoding="utf-8"? > ApplicationapplicationComplete="init(event)"xmlns: fx=" xmlns: s="library: // xmlns: mx="library: //minWidth="955"minHeight="600"> Script> [CDATA[ importcom.wepull.tank.BulletObj; importcom.wepull.tank.TankObj; importmx.events.FlexEvent; [Bindable] publicvartank: TankObj=newTankObj(); publicvarbul: BulletObj=newBulletObj(); protectedfunctioninit(event: FlexEvent): void{ this.addElement(tank); } ]]> Script> Declarations> --Placenon-visualelements(e.g.,services,valueobjects)here--> Declarations> Application> 作业: 如何优化性能,回收子弹,写想法 1月13日 -越界子弹处理回收 -在坦克内部加入弹夹 -初始化时先制造所有子弹运行中只管使用 找到可用的子弹~~~运用visible函数 坦克左右一起按,再按开火。 子弹不动,如何解决 开火时音效 作业: 子弹依然停留问题 让子弹DU,UD,LR,RL的方向不存在即可 在domove中加入 if(asp! =""&&asp! ="DU"&&asp! ="UD"&&asp! ="LR"&&asp! ="RL"){ this.ptAsp=this.asp; } 坦克越界停止 获得坦克当前越界时的方向,除了该方向,其他方向都可以移动 爆炸效果加入到每一个对象中去 还要考虑哪些碰撞情况 游戏性 去公司参观 关山饭店~~~
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课堂 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)