从c++到java (二)

来源:互联网 发布:淘宝时光机入口 编辑:程序博客网 时间:2024/06/05 09:51

 

学习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)         需要设置listenerhandler

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.swingJFC (用于在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类似的功能可以使用,只能用常量或变量的判断来选择执行代码的不同部分

 

 

 

原创粉丝点击