坦克大战源码分析
一、mytank07.java文件分析
注:至上而下将不懂的语句、结构体含义、代码作用等作出解释:
1、包的使用
package com.haiding.tank_7;
包语句的语法格式为:
package pkg1[.pkg2[.pkg3…]];
包的作用:
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
2、import java.awt.*;
意义:导入awt包里的所有java类。java.awt包,即java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI(Graphics User Interface,图形用户界面)组件类。java早期进行用户界面设计时,主要是用java.awt包提供的类。如Button(按钮)、TextField(文本框)和List(列表)等。JDK1.2推出之后,增加了一个新的javax.swing包,该包提供了功能更为强大的用来设计GUI的类。还包括了事件侦听的一些借口方法。
import java.awt.event.ActionEvent;//活动事件
import java.awt.event.ActionListener;//活动监听
import java.awt.event.KeyEvent;//键盘事件
import java.awt.event.KeyListener;//键盘监听
3、import java.io.File;
意思是:导入java.io包中的file类;
作用是:java 处理文件的类 File,java提供了十分详细的文件处理方法。(目前初学没必要深究,知道是什么,作用是什么就行了。)
4、import javax.imageio.ImageIO;
作用是:javax.imageio.ImageIO类提供了一组静态方法进行最简单的图像I/O操作。
读取一个标准格式(GIF, PNG, or JPEG)的图片很简单:
File f = new File(“c:\images\myimage.gif”);
BufferedImage bi = ImageIO.read(f);
5、import java.util.*;
作用是:工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。
(总之,知道作用就行,先不深究)
6、import javax.swing.*;
作用是:提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。
java 8版本,swing被javafx所代替。
7、import javax.sound.sampled.*;
意思是:导入javax.sound.sampled包下的所有类。
作用是:实现简单的音频播放。
8、public class MyTank07 extends JFrame implements ActionListener
(1)