Java实习报告资料_第1页
Java实习报告资料_第2页
Java实习报告资料_第3页
Java实习报告资料_第4页
Java实习报告资料_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、哈尔滨理工大学管理学院信息系 实习报告 班级 信息13-4 姓名 赵军 学号 1306040428 日15 月7 年2016 一、实习目的及意义 进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。 二、实习任务 实习期间,通过学习一个简单的Java程序飞机大战

2、,了解和掌握Java编程的基础,如构造器、API接口等。最后可以独立完成一个小程序。 三、实习语言Java的特点 Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 2、Java语言是一个面向对象的 Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)

3、。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。 3、Java语言是分布式的 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 4、Java语言是健壮的 Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的

4、安全检查机制使得Java更具健壮性。 5、Java语言是安全的 Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 6、Java语言是体系结构中立的 Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这

5、种途径适合于异构的网络环境和软件的分发。 7、Java语言是可移植的 这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。 8、Java是高性能的 的运行速度Java的确是高性能的。事实上,Java与那些解释型的高级脚本语言相比,随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。 9、Java语言是多线程的 在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型

6、构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。 10、Java语言是动态的 Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要

7、的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。 四、实习时间 2016年7月12日7月15日 五、实习地点 哈尔滨达内科技有限公司。 六、实习公司简介 达内全称达内时代科技集团有限公司,是中国高端IT培训的领先品牌,致力于培养面向电信和金融领域的Java、C+、C#/.Net、软件测试、嵌入式、PHP、android等方面的中高端软件人才。 由于达内优秀的教学效果和行业领先的经营模式赢得了社会各界的广泛赞誉和好评,荣获了各界权威机构的颁奖:达内成为业界唯一的一家2006、2007、2008、2009连续4年入选德勤评选的 “中国高科技高成长50

8、强公司”、“亚太地区高科技高成长500强公司”,获得首届中国留学人才归国创业“腾飞”奖、中关村管理委员会指定的“软件人才培养示范基地”、被计算机世界评选的“就业服务杰出贡献奖”、被中国计算机报评选的“最具影响力培训机构奖”、被搜狐评为“中国十大教育集团”、被腾讯评为“中国大学生心目中最具影响力的IT品牌”。 七、实习成果 部分代码展示: Games: import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; public class Games extends JFr

9、ame World w = new World(); public Games() this.setSize(320, 480+30); 桴獩献瑥楔汴?飞机大战); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); this.add(w); this.setVisible(true); Thread t = new Thread(w); t.start(); this.addKeyListener(new KeyAdapter() O

10、verride public void keyPressed(KeyEvent e) switch(e.getKeyCode() case KeyEvent.VK_LEFT: w.plane.left=true; break; case KeyEvent.VK_UP: w.plane.up=true; break; case KeyEvent.VK_RIGHT: w.plane.right=true; break; case KeyEvent.VK_DOWN: w.plane.down=true; break; Override public void keyReleased(KeyEvent

11、 e) switch(e.getKeyCode() case KeyEvent.VK_LEFT: w.plane.left=false; break; case KeyEvent.VK_UP: w.plane.up=false; break; case KeyEvent.VK_RIGHT: w.plane.right=false; break; case KeyEvent.VK_DOWN: w.plane.down=false; break; ); public static void main(String args) Games games = new Games(); World: im

12、port java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import java.util.Vector; import javax.imageio.ImageIO; import javax.swing.JPanel; public class World extends JPanel implements Runnable Map m

13、ap = new Map();/创建地图 Plane plane = new Plane(); Vector bullets = new Vector(); int BulletCount = 0; int BulletStep = 8; Vector npcs= new Vector(); int npcCount =0; int npcStep =50; Vector nbs = new Vector(); /随机数 Random r = new Random(); public static int Score; public static final int START =0; pub

14、lic static final int RUNNING=1; public static final int GAME_OVER =2; public int status; BufferedImage start; BufferedImage game_over; public World() try start = ImageIO.read(getClass().getResource(imgs/start.png); game_over = ImageIO.read(getClass().getResource(imgs/gameover.png); catch (IOExceptio

15、n e) / TODO Auto-generated catch block e.printStackTrace(); /初始状态 status = RUNNING; 绘制/ Override public void paint(Graphics g) /绘制地图 map.paint(g); g.setColor(Color.red); g.drawRect(200, 12, 100, 15); int value = 100-plane.hitcount*10; if(value0) value = 0; g.fillRect(200, 12, value, 15); / 积分 g.setC

16、olor(Color.white); Font f = new Font(Font.SANS_SERIF,Font.ITALIC|Font.BOLD,14); g.setFont(f); ?牤睡瑓楲杮匨潣敲?尫分 , 10, 30); switch (status) case START: /绘制飞机 plane.paint(g); g.drawImage(start, 160-start.getWidth()/2, 200, this); break; case RUNNING: /绘制飞机 plane.paint(g); for(int i =0;ibullets.size();i+) b

17、ullets.get(i).paint(g); for(int i =0;inpcs.size();i+) npcs.get(i).paint(g); for(int i =0;inbs.size();i+) nbs.get(i).paint(g); break; case GAME_OVER: g.drawImage(game_over, 160-game_over.getWidth()/2, 200, this); break; default: break; /多线程 Override public void run() while(true) map.move(); switch (s

18、tatus) case START: break; case RUNNING: plane.move(); addBullet(); for(int i =0;ibullets.size();i+) bullets.get(i).move(bullets,npcs); addNpc(); for(int i =0;inpcs.size();i+) npcs.get(i).move(npcs,nbs,plane); for(int i =0;inbs.size();i+) nbs.get(i).move(plane,nbs); try Thread.sleep(1000/60); catch (

19、InterruptedException e) e.printStackTrace(); repaint(); break; case GAME_OVER: break; default: break; void addBullet() BulletCount+; if(BulletCount % BulletStep=0) if(plane.level=1) Bullet b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2; b.y = plane.y-b.y; bullets.add(b); BulletCount = 0; if(plane.l

20、evel=2) Bullet b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2; b.y = plane.y-b.y; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2+10; b.y = plane.y-b.y; bullets.add(b); BulletCount = 0; if(plane.level=3) Bullet b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2; b.y = plane.y-b.y; bull

21、ets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2; b.y = plane.y-b.y; b.xstep-=1; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2; b.y = plane.y-b.y; bullets.add(b); b.xstep+=1; BulletCount = 0; if(plane.level=4) Bullet b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2-7; b.y

22、 = plane.y-b.y; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2+7; b.y = plane.y-b.y; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2-10; b.y = plane.y-b.y; b.xstep-=1; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2+10; b.y = plane.y-b.y; b.xstep+=1;

23、bullets.add(b); BulletCount = 0; if(plane.level=5) Bullet b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2; b.y = plane.y-b.y; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2-5; b.y = plane.y-b.y; b.xstep-=1; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2+5; b.y = pla

24、ne.y-b.y; b.xstep+=1; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2-10; b.y = plane.y-b.y; b.xstep-=2; bullets.add(b); b = new Bullet(); b.x = plane.x+plane.w/2-b.w/2+10; b.y = plane.y-b.y; b.xstep+=2; bullets.add(b); BulletCount = 0; void addNpc() npcCount+; if(npcCount % npcStep

25、=0) int type = r.nextInt(8); int direction = r.nextInt(3); for(int i =0;iimg.getHeight() y=0; NPC: import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import java.util.Vector; import javax.imageio.ImageIO; public

26、class Npc int x; int y; int w; int h; int xstep=0; int ystep=5; BufferedImage img; BufferedImage imgs= new BufferedImage4; int index=0; boolean hit =false;/击中 boolean destroy=false;/销毁 int hitCount =0; Random r = new Random(); int randomNum; int time; public Npc(int type) try img = ImageIO.read(getC

27、lass().getResource(imgs/+type+.png); for(int i =0;i=imgs.length) destroy = true; public void move(Vector npcs,Vector nbs,Plane plane) if(destroy) npcs.remove(this); World.Score+; return; time+; if(time % randomNum=0) NpcBullet nb = new NpcBullet(this,plane); nbs.add(nb); time = 0; randomNum = r.next

28、Int(50)+50; x+=xstep; y+=ystep; /飞行轨迹 if(y300) ystep=-1; xstep=-xstep; if(y-250) npcs.remove(this); Plane: import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; public class Plane int x; int y; int w; int h; BufferedImage imgs = new

29、BufferedImage3; BufferedImage img; boolean left,up,right,down; int index=0; int level=5; boolean hit = false; int hitcount=0; int flas = 0; public Plane() try for(int i =0;i11) hit = false; flas=0; /index=0; public void move() if(left) x-=8; if(up) y-=8; if(right) x+=8; if(down) y+=8; if(x0) x=0; if

30、(y320-w) x=320-w; if(y480-h) y=480-h; Bullets: import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Vector; import javax.imageio.ImageIO; public class Bullet int x; int y; int w; int h; int xstep=0; BufferedImage img; public Bullet() try img = I

31、mageIO.read(getClass().getResource(imgs/bullet.png); catch (IOException e) e.printStackTrace(); w = img.getWidth(); h = img.getHeight(); public void paint(Graphics g) g.drawImage(img, x, y, null); public void move(Vector bullets,Vector npcs) y-=8; x+=xstep; if(y-h) bullets.remove(this); 子弹与敌机碰撞检测/ f

32、or(int i =0;ix1-w & xx1+w1) if(yy1-h) /1.移除子弹 bullets.remove(this); /2.npc被击中 npcs.get(i).hit = true; NpcBullet: import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Vector; import javax.imageio.ImageIO; import sun.java2d.pipe.DrawImage; public

33、class NpcBullet int x; int y; int w; int h; int step =5; double sin; double cos; BufferedImage img; public NpcBullet(Npc npc,Plane plane) try img =ImageIO.read(getClass().getResource(imgs/npcbullet.png); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); w = img.getWidth();

34、 h = img.getHeight(); x = npc.x+npc.w/2-w/2; y = npc.y+npc.h; int x1 = plane.x+plane.w/2; int y1 = plane.y+plane.h/2; int dx = x1-x; int dy = y1-y; double dLine = Math.sqrt(dx*dx+dy*dy); cos = dx/dLine; sin = dy/dLine; public void paint(Graphics g) g.drawImage(img, x, y, null); public void move(Plan

35、e plane,Vector nbs) x = (int)(x+step*cos); y = (int)(y+step*sin); /碰撞检测 int x1 = plane.x; int y1 = plane.y; int w1 = plane.w; int h1 = plane.h; if(xx1-w & xy1-h& yy1+h1) plane.hit = true; plane.hitcount+; nbs.remove(this); /边界判断 if(x-50|y370|y550) nbs.remove(this); 八、实习心得 初次涉及Java领域,感觉到Java入门是好像没有C,

36、C+入门快,工具也没有什么Turbo C,Visual C+好用,什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做App的。让我不可思议的是JAVA 2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。搭起Java开发环境后,记得刚开始还是用UltraEdit编辑并编译的慢慢的改用JCreator了,要开始干项目了,以前从书上看到的东西,在项目中有了很好的机会去温习,开始主要是用Swing,开发桌面系统,放置一个按钮怎么也放不好,后来才知道有一个布局管理器。后来开始涉及到数据库访问,JDBC。随后Java规范了

37、。最开始下载的规范是JDBC Specification,很多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构,比如,Swing+JDBC,开发数据库应用系 统,让我学会开发两层结构的应用系统。这次实习让我学到了很多东西,让我整体素质有所提升,明白了很多做人做事的道理。第一、毕业了以后不是学习的结束,而是学习的开始,在当今社会,只有不断地汲取新信息新知识,才能获得事业进步的动力,武装自己的头脑,提升自己的能力,扩展自己的视野。第二、学习要联系实践,一个人的价值是通过实践活动来实现的,也只有通过实践才能提升人的品质,彰显人的意志。学到的理论只有通过实践的检验才是合格的。第三、我们要做一个勤于思考的人,我们只有注意观察、分析、总结、提炼,才能积累经验,使自己的工作做出成绩。同时我也明白了遇到麻烦解决的办法有很多:第一、就是上网查询,不懂的可以查查,不要一不会就去问别人,得先自己想办法解决;第二。请教别人。当自己查资料

温馨提示

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

评论

0/150

提交评论