一点心情,写java结课考试之前

80酷酷网    80kuku.com

突然发现,已经好久没有上来写blog了,本来还以为能够天天写,后来发现,确是心有余力而不足啊。学期进入中段,课业慢慢多了,各种各样的事情也接踵而来了。本学期的Java课程也已经结课了,8周32个学时,时间过得好快。前段时间我还在这里讲述自己的Java学习历程,现在已经要面对考试了。当然,我不惧怕考试。

我的作业,写完了,全部是自己写的,我感到很欣慰。身边的问题也开始慢慢变得多起来,是同学问的,还有5天就要考试了,大家都在努力复习。我很感谢问我问题的同学,从他们的问题中,我找到了很多自己的不足,找到了许多自己概念模糊的地方,这些,都是考试前最好的复习。所以,我每次都很耐心地解答他们的问题。同时,我也无偿的把我的全部作业都提供给需要的同学。我知道,有些同学对这个实在没有兴趣,就像我对物理没有兴趣一样,但是我们还是要面对考试。所以,我尽量把注释写得详细,让他们能看懂,考试是开卷的,他们也可以拿去参考。能不能用得上,就要看自己的造化了。其实,我说的是心里话。

学习的动力只有两种,一是压力,一是兴趣。8周32个学时,去除8个上机时间,只有24个小时。一天!把Java学到家?不可能!所以只能有压力,要考试了,不得不学;要做项目了,不得不学;要工作了,不得不学。不过,我还是喜欢从兴趣方面入手。学院的很多同学都喜欢打游戏,计算机学院的计算机普及率是相当可观的,但是仅仅是打游戏,未免有些浪费了。我也喜欢游戏,不过基本上不上瘾。有空的时候,我会和宿舍的同学玩玩cs,或者C&C ZeroHour(呵呵,这个游戏我是高手!),或者三国无双,不过该学习的时候还是学习。游戏不应该过头,身边有些同学因为游戏而堕落,虽然我是局外人,不过有时还是想拉他们一把。其实,如果能对游戏世界的内部感兴趣的话,我觉的也是一件好事。我想说的是游戏编程。

估计有些人都听过robocode,这是一个IBM alphaWorks支持的项目,是一个半成品化的机器人对战平台。由于五一之后要参加学校组织的机器人比赛,所以最近解了一些这方面的情况。我认为,如果对java有一定的了解,学过一些基本知识,robocode能够很好地提升你对java学习的兴趣。简短的代码,清晰的结构,但是里面蕴含着丰富的知识,包括数学知识、策略知识、编程知识……再深入一点,可以看看robocode的对战平台的结构是怎样的,或者试图反编译一下,看看源代码,这些对于学习来说都是大有裨益的。

呵呵,有点扯远了,其实今天写作的意图为‘空’,原来下午第一节是Java,这个时候是中午休息的时候,不过既然下午没有课了,就顺便上来写写自己的心情,想到之处顺笔带过,没有章节,没有条理,不知道你是否满意。以后,还会经常上来这里写文章的。几周之前,想写一些教程发上来,不过落笔的时候,才发现自己的功力有限,估计是看了BruceEckel的书多了的缘故罢,养成了一种严谨的习惯,便也不好意思在这里毒害群众了。

最后,发一段源代码上来,是我的某一次Java作业,呵呵,仅当作为结课的纪念吧。

/* * Created on 2005-4-14 * 窗口分为上下两个区,分别运行两个线程,一个在上面的区域中显示 * 由右向左游动的字符串,另一个在下面的区域从左向右游动的字符串. */

/** * 作者:龙震岳 * 学院:计算机与信息技术学院 * 班级:计科0308 */

import java.awt.*;import java.util.*;import javax.swing.*;

class MoveFrame extends JFrame {

 private static final long serialVersionUID = 1L;

 private JPanel jp1 = new JPanel(), jp2 = new JPanel();  /**  * 定义两个Canvas的内部类。  * 刚开始的用后用panel,发现画完之后会留有痕迹,  * 每次画完还要擦除,很不爽,所以改用Canvas,呵呵。  **/  private Canvas cv1 = new Canvas() {  private static final long serialVersionUID = 1L;

  int x = 0, y = 70, maxX = 640, minX = 0;

  boolean isToEnd1 = false;  // 碰到边就返回的算法,很简单的啦。  public void paint(Graphics g) {   if (!isToEnd1) {    g.drawString("向右移动", x, y);    x += 10;    if (x >= maxX)     isToEnd1 = true;   } else {    g.drawString("向左移动", x, y);    x -= 10;    if (x <= minX)     isToEnd1 = false;   }  } },   cv2 = new Canvas() {  private static final long serialVersionUID = 1L;

  int x = 640, y = 70, maxX = 640, minX = 0;

  boolean isToEnd2 = false;

  public void paint(Graphics g) {   if (!isToEnd2) {    g.drawString("向左移动", x, y);    x -= 10;    if (x <= minX)     isToEnd2 = true;   } else {    g.drawString("向右移动", x, y);    x += 10;    if (x >= maxX)     isToEnd2 = false;   }  } };

 private int x1 = 0, x2 = 0;

 private Thread t1, t2;  // 定义两个随机的变量,使它们休眠的时间不一样 private Random rand1 = new Random();

 private Random rand2 = new Random();

 private void move1() {  t1 = new Thread() {   public void run() {    while (true) {     cv1.repaint();     x1 = rand1.nextInt(100);     try {      sleep(x1);     } catch (InterruptedException e) {      e.printStackTrace();     }    }   }  };  t1.start(); }

 private void move2() {  t2 = new Thread() {   public void run() {    while (true) {     cv2.repaint();     x2 = rand2.nextInt(100);     try {      sleep(x2);     } catch (InterruptedException e) {      e.printStackTrace();     }    }   }  };  t2.start(); }

 public MoveFrame() {  Container cp = getContentPane();  cp.setLayout(new GridLayout(2, 1));  cp.add(cv1);  cp.add(cv2);  move1();  move2();  this.setTitle("线程作业");  this.pack();  this.setSize(640, 280);  this.setVisible(true); }}

public class MovingString {

 public static void main(String[] args) {  MoveFrame mf = new MoveFrame(); }}



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: