学习JAVA编程(二)
一、 JAVA特性和习惯用法
1. 指针
JAVA中没有指针,用以下方法使用
Test a = new Test(); a.t();
2. 地址传递和值传递
原始类型是值传递
对象 (非原始)类型是地址传递
3. 手动回收资源
一般情况下,只要new,系统会自动释放,但更严谨地做法是手动回收,如下:
Employee e1 = new Employee( "Susan", "Baker" );
……
e1 = null;
System.gc(); // garbage collection
此时析构函数protected void finalize()会被调用
4. 内嵌类(一个类中声明另一个类)
1) 内嵌类可以放在类中的任意一个位置,程序都可以找到它
2) 内嵌类的好处
内嵌类可以使用所属类的私有变量和方法
内嵌类的作用域只在所属类内部,其它类是不可见的,从而减少混乱
节约资源
5. 匿名内嵌类(anonymouse inner class)
1) 没有具体名字的内嵌类,因为只使用一次,所有一般不命名
2) 写法
fancyButton.addActionListener
(
new ActionListener() // ActionListener是一个interface, 含一个方法
{// anonymous inner class
public void actionPerformed( ActionEvent event )
{
JOptionPane.showMessageDialog( null,
"You pressed: " + event.getActionCommand() );
}
}
);
它返回的是一个实例,只处理从这个handler来的信息
3) 运行时生成内嵌类的class文件,形如
xxx$1.class
6. 事件处理
1) 引入java.awt:事件处理包
2) 需要设置listener和handler
3) 任何一个对象都可以被监听(addListener), 当它listen的事件发生时就调add时指定的handler处理
7. 多线程
1) 继承Thead类
2) 关键的方法
start(),sleep(),destroy(),resume(),stop(),getName()
3) 线程执行优先级1-10
4) 在外部使用它
PrintThread thread1 = new PrintThread( "thread1" );
thread1.start(); // 此时进入ready状态,等待资源
8. 界面
1) 引入java.swing;JFC (用于在java中开发界面)
2) 由于基类原因,控件即可以draw也可以做为contrainer
二、 JAVA对应语法
1. 类的引入
1) 在某一类(文件)中想使用其它类时(如同C语言中的包含头文件)
2) 使用import关键字,形如
import java.io.*
2. 工具函数的写法
C++中有些工具函数,可能被多处调用,本身又不属于某个类,在JAVA中可以专写一个Utility.java,里边的函数都是static的,直接用里边的函数,不用实例化
3. 枚举
近似类的写法,形如:
public enum FolderType {
HOLDS_FILDERS, HOLDS_MESSAGES
}
FolderType.HOLDS_FILDERS
4. 宏定义
在类中
public static final int IOERROR = 1;
5. ifdef
没有ifdef类似的功能可以使用,只能用常量或变量的判断来选择执行代码的不同部分