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

类别:Java 点击:0 评论:0 推荐:

突然发现,已经好久没有上来写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();
 }
}

本文地址:http://com.8s8s.com/it/it10237.htm