2018年7月19日
今天的实现了两个实例的代码。
一个在画星星,结果是背景是黑色的,星星使用“*”代替,一共花了250个,这里主要使用到了随机函数Math.random(),这个函数得出的值是介于0.0到1.0之间,是double类型,(int)(Math.random()*800),这里进行了强制类型转换。
贴上星星代码实现的代码。
import java.awt.*;
public class MyStar{
public static void main(String args[]){
Frame w=new Frame();
w.setBackground(Color.black);
w.setSize(800,600);
MyPanel mp=new MyPanel();
w.add(mp);
w.setVisible(true);
}
}
class MyPanel extends Panel{
public void paint(Graphics g){
g.setColor(new Color(255,0,255));
for(int i=0;i<250;i++){
g.drawString("*",(int)(Math.random()*800),(int)(Math.random()*600));
}
}
}
另一个实例是,让球动起来。这里引入了线程的概念。
什么是线程呢?
先说说什么什么是进程,比如你电脑代开一个记事本,这是一个进程,再打开一个画图,又是一个进程,每个进程在内存中都分配了独立的一个内存空间。我们可以同时运行多个进程,这些似乎是同时的,但是本质上计算机在一个时刻只能执行一个进程,之所以感觉好像是同时进行,是因为计算机运算速度快,虽然CPU轮转使用,但还是看不出来。
那么,线程工作原理类似进程,在一个进程中可以轮转运行两个或多个CPU,类似玩玩具时,让这个人玩一会,又让另一个人玩一会,大家只有一个玩具,这个玩具就是CPU,虽然只有一个CPU,但是大家轮转这玩,大家似乎就都有的玩了。由于CPU计算速度很快,好像线程同时进行。
java本身就存在多线程,比如垃圾回收机制。
另一个需要提到的是,处理异常的机制,try{}catch(Exception e){}。
下面是实现小球动起来的代码。
import java.awt.*;
public class MyTest{
public static void main(String args[]){
Frame w=new Frame();
w.setSize(800,600);
MyPanel mp=new MyPanel();
w.add(mp);
Thread t=new Thread(mp);
t.start();
w.setVisible(true);
}
}
class MyPanel extends Panel implements Runnable{
int x=200;
int y=100;
public void paint(Graphics g){
g.setColor(Color.blue);
g.fillOval(x,y,200,200);
}
public void run(){
while(true){
try{
Thread.sleep(500);
}catch(Exception e){}
y=y+100;
repaint();
try{
Thread.sleep(300);
}catch(Exception e){
}
x=x+100;
repaint();
if(y>400){
x=100;
y=100;
}
}
}
}
今天就汇报到这里。
网友评论