好好学习,天天向上,写范文网欢迎您!
当前位置:首页 > > 工作范文 > > 心得体会 > 正文

学Java心得体会3篇 java实训心得体会

2022-11-21 17:53:00心得体会

  下面是范文网小编收集的学Java心得体会3篇 java实训心得体会,以供参考。

学Java心得体会3篇 java实训心得体会

学Java心得体会1

  java学起来很有趣,通过学习java可以提高自己的逻辑思维能力。在学习java期间我们做了一些程序,我们班的同学也都积极准备,完成的还不错!在做程序时,我遇到了一些难题,有时也会出现错误,耐心的调试解决问题,我知道只有坚持下去才会成功。

  因为java是一种面向对象的编程语言,刚接触java的人可能会感觉比较抽象,不过没关系不用着急,上课的时候认真听老师讲解,一些概念知识慢慢去理解,课后多做练习,熟能生巧,哪怕是你的记性再好,课后不去强化练习也没用,只有多练了,当你在做项目时你才能很熟练的写出你想要代码。平日在练习时若遇到不会的题目或是在项目中遇到解决不了的问题,首先不要急着去问老师,或是急着上百度搜答案,那样即使你得到了正确答案,以后在其它地方遇到同样的问题,你还是不知道怎么解决!

  我觉得把java学会的关键一点就是坚持练习。学习java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。

  学习java这段时间,有时候会觉得有点苦,但是我觉得正是有了你奋斗时的苦,才能换来学成后的甜。当你经过认真写代码做完一个项目时,你会有一种成就感。心里有一种说不出的喜悦之情。

  学习java靠得是韧劲,靠得是拼劲,靠得是坚持不懈。如果做好了这几点,我想java对你来说不会太难。还有,你自己要有信心,相信自己能学会。

学Java心得体会2

  终于搞定了这份实训报告,受益匪浅啊!一开始想做计算器那个课题,原因很简单,就是因为我感觉那个课题很简单,在百度里一搜就搜到了一模一样的源程序。只是感觉没什么意思,那个界面也不是很好看,又不好玩。所以就做了现在这个猜数游戏。一直想编个游戏程序,于是就到网上去搜代码,一下子就搜到了,而且代码很少,简单易懂。程序是弄好了,那么简短的程序写起报告就犯难了!不得不把程序再添加些模块,充实充实。

  这也让我感觉实训远比想像的难度大,不是网上随便搜一下就可以交差的!不仅需要自己看懂代码,还需要根据自己的需要添加模块,充实代码。

  从网上搜的代码都是字符界面的,老师说既然字符界面的没挑战性,那就做图形界面的好了。做图形界面就有点犯难了,首先没有什么程序可以参照了,必须自己充分理解字符界面的源代码,然后逐步修改完善。

  我依据课本上的gui章节设计了此次的java简单程序,基本实现了课题的要求,还添加了图片以增加视觉效果,以及确定按钮方便用户确定输入数字。

  通过这次实训我的体会归纳为以下4点:

  1、态度第一。摆正自己的心态,不要以为什么东西上网搜搜就可以了,一定要有自己的东西。只有自己付出过,当程序运行成功时的那种喜悦才会令自己有一种莫名的自豪感。态度决定一切!

  2、兴趣是关键。我的学习完全是兴趣导向的,所以压力并不大。因为有兴趣,所以我会很想充分理解一切细节。又因为理解,所以许多原本片片断断的知识都可以渐渐互相融会贯通,累积技术能量,理论和实务之间的藩篱被打破了,学习效率倍增。学习并快乐着!

  3、敢于挑战。不安于现成的程序,要敢于用多种方法实现一个目的。现在的网络科技很发达,想要一个源程序的确很简单,所以很多人都是在自己都不明白题目要求时,就可以在网上搜到一模一样的代码,根本没有自己的东西。挑战自我是项艰巨的任务。只有坚持自己多看代码多写程序才会有更多的收获。

  4、不懈追求。要对源代码进行不断地完善,要尽可能地实现课题所要求的功能。对初学者来说,大量地写程序是必要的,但过了某个阶段之后,写程序所带来的技术能力成长已经到了极限,还不如多花一点时间看书,学新技术和新观念。可以从实现源程序功能着手,比如添加写模块啊什么的,实现更多功能。看着自己编的程序能成功运行,这样自己会更感兴趣,也就会乐此不疲。

学Java心得体会3

  1.首先有玩家类,窗口类,主函数类和图片文件(.jpg)

  2.然后是先行知识,创建窗口(jframe),设置窗口属性;窗口上不能直接添加组件(键盘监听等),所以先在窗口上添加容器(jpanel),将组件(keyadapter)添加到容器;

  3.画出玩家:重写窗口类中的paintcomponent方法,创建graphics对象,调用drawimage方法可画图,调用drawstring方法可标注其名字

  4.移动:在窗口类中创建键盘监听抽象类keyadapter(实现了接口的部分方法但无具体操作),需要重写该类的keypressed方法和keyrleased方法,赋给按键变量真值,随后将该对象添加到窗口

  5.随机生成初始坐标:在开始游戏后随机给定玩家的x、y坐标,创建random对象,调用random.nextint(n)方法,n代表从[0,n)区间的随机值。

  6.最后通过一个timer.schedule(匿名内部类对象,指定延迟后开始,周期)方法来实现移动效果。匿名内部类【timertask的子类,重写了run方法,包括repaint方法(实则调用paintcomponent)和yidong方法】来重画、监听键盘的指令()并作出相应动作

  下面是源代码(有注释):

  容器类

  package a;

  import javax.swing._;

  import java.awt._;

  import java.awt.event.keyadapter;

  import java.awt.event.keyevent;

  import java.util.random;

  import java.util.timer;

  import java.util.timertask;

  import static a.newgame.frame;

//新建面板

  public class war extends jpanel {

  private timer timer;

  private boolean sup, sdown, sright, sleft;//右飞机按键变量

  private boolean sw, sd, ss, sa;//左飞机按键变量

  private player1 player1 = new player1();

  private player2 player2 = new player2();

  private imageicon img11 = player1.img1;

  private imageicon img22 = player2.img2;

@override

  protected void paintcomponent(graphics g) {

  super.paintcomponent(g);//此句调用父类方法进行界面重绘,恢复到某个界面,下面的步骤再画玩家;如果注释掉会有重影

//在面板上画出玩家

  g.drawimage(img11.getimage(), player1.x, player1.y, 100, 100, this);

  g.drawstring("p1", player1.x, player1.y);

  g.drawimage(img22.getimage(), player2.x, player2.y, 100, 100, this);

  g.drawstring("p2", player2.x, player2.y);

}

  public void startgame() {

  timer = new timer();

  timer.schedule(new timertask() {//匿名内部类(timertask的子类)

@override

  public void run() {//重写run()函数

  repaint();//调用重写的paintcomponent来画两飞机

  yidong();//并每次判断按下哪个键,然后移动

}

}, 0, 50);//安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。50毫秒执行一次

}

  public void yidong() {

//因为每打印一次可能用户按下一个飞机的几个键或者两个飞机的几个键,这些是都要检测到的,改成elseif后只能检测到一个键,无法实现两架飞机同时多方向移动

  if (sw && player1.y > 0) {

  player1.y -= player1.speed;

}

  if (sa && player1.x > 0) {

  player1.x -= player1.speed;

}

  if (ss && player1.y < 700) {

  player1.y += player1.speed;

}

  if (sd && player1.x < 900) {

  player1.x += player1.speed;

}

  if (sup && player2.y > 0) {

  player2.y -= player2.speed;

}

  if (sdown && player2.y < 700) {

  player2.y += player2.speed;

}

  if (sleft && player2.x > 0) {

  player2.x -= player2.speed;

}

  if (sright && player2.x < 900) {

  player2.x += player2.speed;

}

}

  public void act() {

//随机生成两飞机的初始坐标

  random rd = new random();

  player1.x = rd.nextint(900);

  player1.y = rd.nextint(700);

  player2.x = rd.nextint(900);

  player2.y = rd.nextint(700);

//开始游戏后获得计时器开始监听并重画

  startgame();

//keyadapter是keylistener的实现类,重写了所有方法但没有具体操作

  keyadapter keyadapter = new keyadapter() {

@override

  public void keypressed(keyevent e) {

  super.keypressed(e);

  int key = e.getkeycode();

  switch (key) {

  case keyevent.vk_w:

  sw = true;

  break;

  case keyevent.vk_a:

  sa = true;

  break;

  case keyevent.vk_d:

  sd = true;

  break;

  case keyevent.vk_s:

  ss = true;

  break;

  case keyevent.vk_right:

  sright = true;

  break;

  case keyevent.vk_left:

  sleft = true;

  break;

  case keyevent.vk_down:

  sdown = true;

  break;

  case keyevent.vk_up:

  sup = true;

  break;

}

}

@override

  public void keyreleased(keyevent e) {

  int key = e.getkeycode();

  switch (key) {

  case keyevent.vk_w:

  sw = false;

  break;

  case keyevent.vk_a:

  sa = false;

  break;

  case keyevent.vk_d:

  sd = false;

  break;

  case keyevent.vk_s:

  ss = false;

  break;

  case keyevent.vk_right:

  sright = false;

  break;

  case keyevent.vk_left:

  sleft = false;

  break;

  case keyevent.vk_down:

  sdown = false;

  break;

  case keyevent.vk_up:

  sup = false;

  break;

}

}

};

  frame.addkeylistener(keyadapter);

}

}

  主函数类:

  package a;

  import javax.swing._;

  public class newgame {

  public static jframe frame;

  public static void main(string[] args) {

  frame = new jframe("逃出生天");

  frame.setsize(1000,800);

//绝对布局组件位置和形状不会随窗体改变,不设置布局管理器就可以使用setbounds()来控制位置

  frame.setlayout(null);

//设置窗体关闭程序自动关闭

  frame.setdefaultcloseoperation(windowconstants.exit_on_close);

//窗体居中显示

  frame.setlocationrelativeto(null);

//添加主面板

  war war = new war();

  frame.add(war);

//设置面板大小

  war.setbounds(0,0,1000,800);

//设置主面板可见

  frame.add(war);

  frame.setvisible(true);

  war.act();

}

}

  1234567891011121314151617181920222223242526

  玩家类:

  玩家1

  package a;

  import javax.swing._;

  public class player1 {

  public int x;

  public int y;

  public int speed = 50;

  public imageicon img1 = newimageicon("d:\\program_files\\jetbrains\\workspace_idea\\src\\a\\plane.jpg");

}

  12345678910

  玩家2

  package a;

  import javax.swing._;

  public class player2 {

  public int x;

  public int y;

  public int speed = 50;

  public imageicon img2 = newimageicon("d:\\program_files\\jetbrains\\workspace_idea\\src\\a\\plane2.jpg");

}

  做成一个桌面小游戏:

  点“+”号

  选好主函数类后点ok

  然后点build中的build artificts

  选择jar包点build即可

  然后jar包就在你的workspace生成了,找到它发送桌面快捷方式,更改图标名字即可

  图片转换成图标的网站附上


相关热搜
相关文章