Java实习报告资料.docx
《Java实习报告资料.docx》由会员分享,可在线阅读,更多相关《Java实习报告资料.docx(31页珍藏版)》请在冰豆网上搜索。
![Java实习报告资料.docx](https://file1.bdocx.com/fileroot1/2023-6/24/ecf964b5-00e0-462d-9b10-66ff94980a69/ecf964b5-00e0-462d-9b10-66ff94980a691.gif)
Java实习报告资料
哈尔滨理工大学管理学院信息系
实习报告
班级信息13-4
姓名赵军
学号1306040428
日15月7年2016
一、实习目的及意义
进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。
学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。
通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。
为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、实习任务
实习期间,通过学习一个简单的Java程序——飞机大战,了解和掌握Java编程的基础,如构造器、API接口等。
最后可以独立完成一个小程序。
三、实习语言Java的特点
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8、Java是高性能的
的运行速度Java的确是高性能的。
事实上,Java与那些解释型的高级脚本语言相比,
随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
9、Java语言是多线程的
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
10、Java语言是动态的
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
四、实习时间
2016年7月12日——7月15日
五、实习地点
哈尔滨达内科技有限公司。
六、实习公司简介
达内全称达内时代科技集团有限公司,是中国高端IT培训的领先品牌,致力于培养面向电信和金融领域的Java、C++、C#/.Net、软件测试、嵌入式、PHP、android等方面的中高端软件人才。
由于达内优秀的教学效果和行业领先的经营模式赢得了社会各界的广泛赞誉和好评,荣获了各界权威机构的颁奖:
达内成为业界唯一的一家2006、2007、2008、2009连续4年入选德勤评选的“中国高科技高成长50强公司”、“亚太地区高科技高成长500强公司”,获得首届中国留学人才归国创业“腾飞”奖、中关村管理委员会指定的“软件人才培养示范基地”、被《计算机世界》评选的“就业服务杰出贡献奖”、被《中国计算机报》评选的“最具影响力培训机构奖”、被搜狐评为“中国十大教育集团”、被腾讯评为“中国大学生心目中最具影响力的IT品牌”。
七、实习成果
部分代码展示:
Games:
importjava.awt.event.KeyAdapter;
importjava.awt.event.KeyEvent;
importjavax.swing.JFrame;
publicclassGamesextendsJFrame{
Worldw=newWorld();
publicGames(){
this.setSize(320,480+30);
桴獩献瑥楔汴?
飞机大战);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
this.add(w);
this.setVisible(true);
Threadt=newThread(w);
t.start();
this.addKeyListener(newKeyAdapter(){
@Override
publicvoidkeyPressed(KeyEvente){
switch(e.getKeyCode()){
caseKeyEvent.VK_LEFT:
w.plane.left=true;
break;
caseKeyEvent.VK_UP:
w.plane.up=true;
break;
caseKeyEvent.VK_RIGHT:
w.plane.right=true;
break;
caseKeyEvent.VK_DOWN:
w.plane.down=true;
break;
}
}
@Override
publicvoidkeyReleased(KeyEvente){
switch(e.getKeyCode()){
caseKeyEvent.VK_LEFT:
w.plane.left=false;
break;
caseKeyEvent.VK_UP:
w.plane.up=false;
break;
caseKeyEvent.VK_RIGHT:
w.plane.right=false;
break;
caseKeyEvent.VK_DOWN:
w.plane.down=false;
break;
}
}
});
}
publicstaticvoidmain(String[]args){
Gamesgames=newGames();
}
}
World:
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.image.BufferedImage;
importjava.io.IOException;
importjava.util.Random;
importjava.util.Vector;
importjavax.imageio.ImageIO;
importjavax.swing.JPanel;
publicclassWorldextendsJPanelimplementsRunnable{
Mapmap=newMap();//创建地图
Planeplane=newPlane();
Vectorbullets=newVector();
intBulletCount=0;
intBulletStep=8;
Vectornpcs=newVector();
intnpcCount=0;
intnpcStep=50;
Vectornbs=newVector();
//随机数
Randomr=newRandom();
publicstaticintScore;
publicstaticfinalintSTART=0;
publicstaticfinalintRUNNING=1;
publicstaticfinalintGAME_OVER=2;
publicintstatus;
BufferedImagestart;
BufferedImagegame_over;
publicWorld(){
try{
start=ImageIO.read(getClass().getResource(imgs/start.png));
game_over=
ImageIO.read(getClass().getResource(imgs/gameover.png));
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//初始状态
status=RUNNING;
}
绘制//
@Override
publicvoidpaint(Graphicsg){
//绘制地图
map.paint(g);
g.setColor(Color.red);
g.drawRect(200,12,100,15);
intvalue=100-plane.hitcount*10;
if(value<0){
value=0;
}
g.fillRect(200,12,value,15);
//积分
g.setColor(Color.white);
Fontf=newFont(Font.SANS_SERIF,Font.ITALIC|Font.BOLD,14);
g.setFont(f);
?
牤睡瑓楲杮匨潣敲?
?
尫分,10,30);
switch(status){
caseSTART:
//绘制飞机
plane.paint(g);
g.drawImage(start,160-start.getWidth()/2,200,this);
break;
caseRUNNING:
//绘制飞机
plane.paint(g);
for(inti=0;ibullets.get(i).paint(g);
}
for(inti=0;inpcs.get(i).paint(g);
}
for(inti=0;inbs.get(i).paint(g);
}
break;
caseGAME_OVER:
g.drawImage(game_over,160-game_over.getWidth()/2,200,this);
break;
default:
break;
}
}
//多线程
@Override
publicvoidrun(){
while(true){
map.move();
switch(status){
caseSTART:
break;
caseRUNNING:
plane.move();
addBullet();
for(inti=0;ibullets.get(i).move(bullets,npcs);
}
addNpc();
for(inti=0;inpcs.get(i).move(npcs,nbs,plane);
}
for(inti=0;inbs.get(i).move(plane,nbs);
}
try{
Thread.sleep(1000/60);
}catch(InterruptedExceptione){
e.printStackTrace();
}
repaint();
break;
caseGAME_OVER:
break;
default:
break;
}
}
}
voidaddBullet(){
BulletCount++;
if(BulletCount%BulletStep==0){
if(plane.level==1){
Bulletb=newBullet();
b.x=plane.x+plane.w/2-b.w/2;
b.y=plane.y-b.y;
bullets.add(b);
BulletCount=0;
}
if(plane.level==2){
Bulletb=newBullet();
b.x=plane.x+plane.w/2-b.w/2;
b.y=plane.y-b.y;
bullets.add(b);
b=newBullet();
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){
Bulletb=newBullet();
b.x=plane.x+plane.w/2-b.w/2;
b.y=plane.y-b.y;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2;
b.y=plane.y-b.y;
b.xstep-=1;
bullets.add(b);
b=newBullet();
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){
Bulletb=newBullet();
b.x=plane.x+plane.w/2-b.w/2-7;
b.y=plane.y-b.y;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2+7;
b.y=plane.y-b.y;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2-10;
b.y=plane.y-b.y;
b.xstep-=1;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2+10;
b.y=plane.y-b.y;
b.xstep+=1;
bullets.add(b);
BulletCount=0;
}
if(plane.level==5){
Bulletb=newBullet();
b.x=plane.x+plane.w/2-b.w/2;
b.y=plane.y-b.y;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2-5;
b.y=plane.y-b.y;
b.xstep-=1;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2+5;
b.y=plane.y-b.y;
b.xstep+=1;
bullets.add(b);
b=newBullet();
b.x=plane.x+plane.w/2-b.w/2-10;
b.y=plane.y-b.y;
b.xstep-=2;
bullets.add(b);
b=newBullet();
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;
}
}
}
voidaddNpc(){
npcCount++;
if(npcCount%npcStep==0){
inttype=r.nextInt(8);
intdirection=r.nextInt(3);
for(inti=0;i<4;i++){
Npcn=newNpc(type);
switch(direction){
case0:
n.x=-n.w-(50*i);
n.y=-n.h-(50*i);
n.xstep=3;
n.ystep=3;
break;
case1:
n.x=320/2-(150+n.w)/2+(50*i);
n.y=-n.h;
n.ystep=3;
break;
case2:
n.x=320+(50*i);
n.y=-n.h-(50*i);
n.xstep=-3;
n.ystep=3;
break;
default:
break;
}
npcs.add(n);
}
npcCount=0;
}
}
}
Map:
importjava.awt.Graphics;
importjava.awt.image.BufferedImage;
importjava.io.IOException;
importjavax.imageio.ImageIO;
publicclassMap{
intx;
inty;
BufferedImageimg;
//构造器
publicMap(){
x=0;
y=0;
try{
img=ImageIO.read(getClass().getResource(imgs/bg.gif));
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
//paint()
publicvoidpaint(Graphicsg){
g.drawImage(img,x,y-img.getHeight(),null);
g.drawImage(img,x,y,null);
}
//move()
publicvoidmove(){
y++;
if(y>img.getHeight())
y=0;
}
}
NPC:
importjava.awt.Graphics;
importjava.awt.Image;
importjava.awt.image.BufferedImage;
importjava.io.IOException;
importjava.util.Random;
importjava.util.Vector;
importjavax.imageio.ImageIO;
publicclassNpc{
intx;
inty;
intw;
inth;
intxstep=0;
intystep=5;
BufferedImageimg;
BufferedImage[]imgs=newBufferedImag