java web 编程课程总结
《javaweb编程课程总结》
这次的课程和以往的课程有一些不同。一是,需要理解的概念、专业术语很多。比如,JavaWeb里引入了Web体系结构、MVC设计模式等的概念,出现了Servlet、JavaBean、Scriptlet、JSTL等无法替代的术语;二是,这次学习的内容和Internet接轨,十分实用。学完JSP,既复习了Java的知识,又具备了做网站的能力。回想一下这个阶段的过程。
第一是对Web应用程序的概述。我从中了解到Web应用程序的三层体系结构:表示层、业务层、数据存取层。从而想到了学数据库设计时的数据库设计三大范式,它们同是叙述在编写代码时应做的规划和应遵循的规则,这种规划在以后的学习中时有出现,说明编程并不是一味地进行循环判断、死记硬背,而需要在技术上有所加强、在效率上有所提高。做任何事都是如此,事先必须有目标、有计划,有统筹,这样执行时才不会盲目,才不会事倍功半。学习编程对综合能力都是一种培养。
接下来是JSP知识。要学JSP,就必须会HTML,如果HTML学不通,这对以后的学习都是一个瓶颈。基础一定要打扎实,吃透,否则上层建筑的建起就不会很顺利甚至没法起步。然后是JavaBean。以下是个人对JavaBean的一点学习体会。JavaBean里有set()和get()方法,用这些方法能很容易地传值,逻辑上更标准,代码看起来也更规范。但set()和get()方法只是用来对属性进行操作的,所以如果是进行复杂的逻辑或对数据库进行操作等,那么就不要写成set()和get()方法,只用一个有返回值的方法就足以。这样直观方便,且符合规范。总之,set()和get()方法不要没有效率地滥定义。
接着是Servlet。Servlet是一个用Java编写的应用程序,在服务器上运行,用来处理请求和响应,也可以单独做为一个Web页面。
然后讲的是标签,包括自定义标签和JSP标准标签库。用一般的Java代码都几乎能实现它们的功能。它们的好处是提高了代码的重用性。标准标签库里有几个比较有用的标签,比如forTokens和setBundle,这两个标签的作用是一般代码实现不了的。
通过学习JSP,我了解了更多的编程概念和理念,更增强了信心,只要有克服困难的勇气和决心,就没有什么难关无法克服。我会抱着十足的勇气和决心向下一个阶段挑战。从一期学到现在,我对Java有了一个比较具体的认识。
Java的特点是:面向对象、跨平台、可移植。面向对象的涵义是,这种语言可以形象地模拟现实生活中的实物。在面向对象的语言中,“类”是对一组实物的共同特征描述,“对象”是类的实例,同一个类的一些对象具有类所定义的共同特点。面向对象的三大特点是“封装”、“继承”和“多态”。封装的表现有三,一是它把数据成员组织在一起,形成一个整体;二是它可以隐藏细节,简化操作,比如,声明一个JTextField类的对象,你可以实现这个API中所有的功能,但看不到这个类的代码;你可以直接调用它的setText()、getText()等方法,而不用考虑它具体是怎么实现的。三是它可以保护数据,比如,一个类里有privateintage的属性,产生一个setAge(intageTemp)的方法,在这个方法里对传入的参数进行检验,如果不符合要求,就不对age赋值。
扩展阅读:JAVA编程实训课程学期总结
Java编程实训课程
学期总结
姓名:魏永进______________学号:_201*022121______________班级:___09计算机多媒体技术____________
成绩:_______________
成绩登记表
次数自评组评课堂
安徽中澳科技职业学院计算机系
指导教师:魏晓东
12345678910111213系合总数计分
JAVA学习总结论文
一对JAVA的入门认识及了解
JAVA总的来说和C++、.NET、DELPHI等语言是同一祖先生出来,所以熟悉这类编程的人学起来特别容易,它们都是面向对象化编程语言。学习任何语言(包括英语),基础一定要打好,没有学会走路跑步不可能快吧。所以学习JAVA一定要先把JAVA的几个基本组成元素学好。以下是我总结出来的学习顺序和注意事项:
1、数据类型JAVA是一种强类型语言,各种类型不会自动转换,使用前必须先定义。2、方法方法相当于定义一个"宏"、一个"函数",方法的定义格式为:"说明符修饰符返回值方法名(参数){方法体}。"
在学习方法的时候要注意"说明符、"修饰符"、"返回值"这三样东西。
我们在调用JAVA的自带的"类"里面的"方法"的时候,我们一开始是不用看懂这些方法里面写什么(当然,你能看懂是最好)。我们只要知道,使用了这个方法后,"返回值"的"类型"说明
3、类在JAVA中最经常听到词,也是最麻烦的东西,类的定义格式为:说明符class类名extends超类名implements接口名{主体}
4、变量常量JAVA的常量名一般用全大写字母表示,并且为了节省内存,一般定义为静态(JAVA程序中的名字我们经常有个默认的规则,类名所有单词第一个字母大写,方法名第二个单词开始第一个字母大写,变量名小写,这样我们一看程序就非常清楚了,从小养成良好的习惯嘛,呵呵),变量的定义格式为:"修饰符数据类型变量名"
变量在类中定义(不在方法体中的部分称为域)和在方法体中定义是不同的(在方法体中定义不需要修饰符)。学习变量的时候要注意两个特殊的东西"this"和"super"。同时我们就要学习什么叫"覆盖"、"重载"。
5、控制流所有的编程语言的控制语句无非就是几个ifelseforwhiledoswitch。6、接口:一个抽象的东西,接口可以多继承,解决了类只能单继承的问题。接口的定义格式为:
说明符interface接口名{主体},
接口内的方法都是没有主体的,只有常量或变量。当类使用接口的时候,一定要"覆盖"接口的方法。7、线程:线程是个比较复杂的东西,例如一个赛马程序有七匹马赛跑,就有七个线程,看起来好象是同时在跑,其实是计算机分配不同的时间段让七个线程运行。我们初学者的程序可能还用不上。
到这里为语言本身的学习是后继学习的基础。任何一门语言都是知识的浓缩,是设计者智慧的结晶,更何况是作为高级语言Java。作为初学者,我们确实应该脚踏实地的从语言层面开始学起,为进一步学习打好基础。所以,我计划利用假期拜读ThinkinginJava。学习Java要充分利用资源。最重要的资源是JDK源码,其次就是opensource。当然,动手写程序才是硬道理。
2、学习面向对象语言一定要结合设计模式。语言本身只是工具,如何利用好工具表达我们的想法,就需要具有专业思维。设计模式就是我们应该具有的专业思维。
3、多态性是面向对象程序设计的核心!在对Java语言和设计模式有简单的了解后,我觉得多态性是OOP核心中的核心,正是因为多态具有的表示独立性,才使得程序具有很好的可扩展性和可复用性。止,JAVA的基本概念我们有一定的了解了,我们就开始研究JAVA的
类了。
二.如下是运作坦克大战的步骤和设计方法:
2.2设计方法2.2.1构建游戏主类
在主类中构造一个主Frame框架,设置它的大小和位置,并将其显示。在主类中编写一段代码,构造一个窗口。并添加窗口关闭的处理事件,将窗口设置成打小不可变。主要代码如下:
this.addWindowListener(newWindowAdapter(){
});
this.setResizable(false);
}publicvoidwindowClosing(WindowEvente){System.exit(0);
2.2.2构建坦克类Tank
构造主窗口中所需要的Tank类,并将坦克加到窗口中,实现坦克的四个方向的移动
创建一个坦克类,用画图工具构造出简单的图形代表坦克,并将坦克加入到主窗口当中。主要代码如下:
publicclassTank{}
publicvoiddraw(Graphicsg){}
Colorc=g.getColor();g.setColor(Color.RED);g.fillOval(x,y,30,30);g.setColor(c);
publicclassTankClientextendsFrame{
publicvoidpaint(Graphicsg){myTank.draw(g);}
}让坦克朝四个方向运动起来,在主类TankClient中启用多线程机制,让系统不断的进行重画。并在Tank类中建立处理按键的方法,实现坦克的手动移动;根据坦克类修改TankClient主类,在主类中注册事件监听器,并调用Tank类中的方法。主类TankClient中使用双缓冲机制消除坦克的闪烁现象。在Tank类当中添加的按键方法,代码如下:
publicvoidkeyPressed(KeyEvente){
}intkey=e.getKeyCode();switch(key){
caseKeyEvent.VK_LEFT:
bL=true;break;
}locateDirection();
publicvoidkeyReleased(KeyEvente){
intkey=e.getKeyCode();switch(key){
caseKeyEvent.VK_LEFT:
bL=false;break;
}}locateDirection();
TankClient类中的多线程机制的主要代码如下:
newThread(newPaintThread()).start();
privateclassPaintThreadimplementsRunnable{
publicvoidrun(){
while(true){
repaint();
try{}
}}Thread.sleep(50);
}catch(InterruptedExceptione){}
e.printStackTrace();
2.2.3添加炮弹Missile类
在Missile类当中添加x,y,dir等属性以及常量。在Missile类当中添加构造方法,draw方法等必要方法。根据不同的方向,子弹要进行不同的运动。在TankClient当中new一颗子弹出来。
2.2.4实现坦克的互相攻击
(1)让主战坦克打出炮弹
1)在Tank类当中增加对J键的处理,使每按下J键的时候,坦克打出一发炮弹。
caseKeyEvent.VK_J:
fire();break;
2)根据“坦克打出炮弹”这句话,确定Tank当中的fire方法,其返回值为Missile。
publicMissilefire(){
Missilem=newMissile(x,y,ptDir);
}returnm;
3)为了解决坦克停下来也能开火的问题给坦克加一炮筒,根据炮筒方向和
位置设定子弹的方向和位置并new出来,然后返回。每次move之后根据Tank的新方向确定炮筒的方向。
if(this.dir!=Direction.STOP){}
this.ptDir=this.dir;
4)为了能够打出多发炮弹,使用容器填装多发炮弹,每当抬起J键的时候就往容器中加入新的炮弹
Listmissiles=newArrayList();
5)解决炮弹不消亡的问题,加入控制炮弹生死的量live(Missle),当炮弹已经死去就不需要对其重画,当炮弹飞出边界就死亡,当炮弹死亡就从容器中移去。
if(x<0||y<0||x>TankClient.GAME_WIDTH||y>TankClient.GAME_HEIGHT){
live=false;
}publicvoiddraw(Graphicsg){
if(!live){
tc.missiles.remove(this);return;
}}(2)实现坦克的互相开火
1)加入区分敌我的Boolean量good,根据敌我设置不同的坦克2)更新Tank的构造函数,加入good3)在TankClient中new出敌人并画出
4)在Missile中加入hitTank(Tankt)方法,返回布尔类型
5)借用碰撞检测的辅助类Rectangle,为Tank和Missile类都添加getRect()方法。
publicRectanglegetRect(){
returnnewRectangle(x,y,WIDTH,HEIGHT);
}6)增加控制坦克生死的Boolean量live,如果live为false就不画了。当炮弹击中敌人坦克时,坦克被打死,子弹也死去。
publicbooleanhitTank(Tankt){
if(this.getRect().intersects(t.getRect())&&t.isLive()){
}returnfalse;
t.setLive(false);this.live=false;returntrue;
}(3)添加多辆坦克
建一容器向里面添加敌人的Tank
Listtanks=newArrayList();添加Tank
for(inti=0;i38)this.fire();
2)让敌方坦克发射炮弹。本军坦克不打本军坦克,向炮弹添加表示好坏的Boolean量good。
3)修改炮弹的构造方法;修改Tank的fire方法;修改hitTank方法,坦克只能打击对方。
2.2.5创建Explode类
(1)加入位置属性x,,y,加入Boolean变量live炸
(3)在TankClient当中创建容器,将爆炸存放与容器当中,击毙一辆坦克就产生爆炸,将爆炸逐一画出(如果死去就去除)Missile类当中的hitTank()方法
2.2.6添加药箱BloodBox
创建BloodBox类添加血药箱,加入必要的属性和方法,让药箱沿着固定的轨迹运动。
privatestaticRandomr=newRandom();intstep=0;
privateint[][]pos={{100,120},{200,300},{760,570},{280,570},{600,40},{700,60},{680,225}};
publicBloodBox(){}
x=pos[0][0];y=pos[0][1];
privatevoidmove(){
step++;
if(step==pos.length){
step=0;
}}x=pos[step][0];y=pos[step][1];
当主战Tank与药箱接触的时候,血自动加满。
publicbooleaneat(BloodBoxb){
if(this.live&&b.isLive()&&this.getRect().intersects(b.getRect())){
this.life=100;b.setLive(false);
}returntrue;
returnfalse;
}2.2.7添加Home
建立Home类,在Home类中为家添加普通墙壁,当墙壁中的home被打掉后游戏结束。
2.2.8添加障碍物
(1)添加金属墙
1)建立MetalWall类,建立MetalWall对象,用绘图工具画出来
2)让每一颗子弹打击每一堵墙,添加hitMetalWall()方法。当子弹接触到墙时子弹消失。
publicbooleanhitMetalWall(MetalWallw){
if(this.live&&this.getRect().intersects(w.getRect())){
}}returnfalse;
this.live=false;returntrue;
3)让坦克不能穿过墙。添加记录上一次位置的oldX,oldY;修改构造函数每次move之前记录上一次的位置。添加stay方法记录移动之前的位置,当坦克撞到樯时回到移动前的位置,即当碰到墙时stay。
publicbooleancollidesWithMetalWall(MetalWallw){
}if(this.live&&this.getRect().intersects(w.getRect())){}
returnfalse;
this.stay();returntrue;
(2)添加普通墙
建立OrdinaryWall类,往里添加相应属性以及相应方法。具体步骤参考2.7.1中
添加金属墙。不同之处在于Missile类当中的hitOrdinaryWall()方法,挡子弹接触到墙壁时,墙壁消失。(3)添加河水River
(4)添加树林
创建Tree类,用画图工具画出代表森林的模块,加入主窗口当中。(5)加入图片替换主窗口中的各对象
再将图片加入时,运用了系统提供的工具包ToolKit,用工具包拿到所需图片后再将它放入容器中。然后再做相应的替换。
三:JAVA的学习心得
经过一年的学习,Java的课程已经结束了。可是我知道,学习java的路上,我们才刚刚起步。学Java之前我听许多人说Java很难,学了之后我感觉Java确实不容易,想学好它并非易事。我觉得学Java必须做到三步走:1.课前认真预习。2.课上认真听讲。3.课下认真复习。
我想只有做好这三步,自己才能跟上老师的步子。
回想一下学习Java时的情景,我仍然兴奋不已。其实在刚接触Java时,自己确实有点晕,但经过一段时间学习,逐渐走出了迷雾。刚开始学习循环时,我觉得那一块很不熟悉,做题时,思路半天才理出来。经过一段时间的练习,我渐渐的走出了第一个迷雾。但是到了第六章,我彻底晕了,看书看得也一知半解晕晕乎乎的。类与对象是在学了第七、八章后弄清的。到了最后一章,学到字符串时,传递参数真让我晕啊,然后我又是练习,最后略微弄明白了点。经过三起三落,经过几个迷雾之后,我对Java也有了更为深入的了解,就学会了Java。
Java学起来很有趣,通过学习Java可以提高自己的逻辑能力。在学习Java期间我们做了一些程序,我们班的同学也都积极准备,完成的还不错!在做程序时,我遇到了一些难题,有时也会出现错误,时间长了弄得我心烦意乱,但是我知道只有坚持下去才会成功。因为Java是一种面向对象的编程语言,刚接触Java的人可能会感觉比较抽象,不过没关系不用着急,上课的时候认真听老师讲解,一些概念知识慢慢去理解,课后多做练习,熟能生巧,哪怕是你的记性再好,课后不去强化练习也没用,只有多练了,当你在做项目时你才能很熟练的写出你想要代码。
我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去
学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。
我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过HelloWorld,一开始很多同学不是很理解为什么main方法一定要这样来定义publicstaticvoidmain(String[]args),能不能不这样写?我刚也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。
学习Java这段时间,有时候会觉得有点苦,但是我觉得正是有了你奋斗时的苦,才能换来学成后的甜。当你经过认真写代码做完一个项目时,你会有一种成就感。心里有一种说不出的喜悦之情。
学习Java靠得是韧劲,靠得是拼劲,考得是坚持不懈。如果做好了这几点,我想Java对你来说不会太难。还有,你自己要有信心,相信自己能学会。
友情提示:本文中关于《java web 编程课程总结》给出的范例仅供您参考拓展思维使用,java web 编程课程总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《java web 编程课程总结》
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/585495.html
- 下一篇:Java Web开发课程设计