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

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航