一 课程内容
1 对于包名是cn.mybole的类Test,在当前目录下生成包javac –d . Test.java,在指定目录下生成包javac –d e:/ Test.java,将会自动在e盘创建新文件夹cn,下一级目录是mybole,再下一级是Test.java。解释时如果刚才是在指定目录下生成包的在set classpath中一定要设置到最上层包名所对应的目录(本例是e:/),然后用java cn.mybole.Test执行程序。
2 import java.io.File ;引入包中的类
import java.io.*; 引入整个包
default 在同一个包中的类可以互相引用,无需import对方的类
不在同一个包中的的类,引用其他包中的类,除了要import,还要将类定义为public。
在一个类中调用另一个类时,先编译调用的类,在编译当前的类。或者用javac –d . *.java(编译所有java文件)
3 native方法是用户在Java中可以使用,但不能编写的方法。JNI可以理解为Java和本地应用程序的中介。
步骤 1 写Java代码 class HelloWorld{
public native void displayHelloWorld();
static
{
System.loadLibrary("Hello"); \\加载名为Hello的动态链接库
}
public static void main(String []args) {
new HelloWorld().displayHelloWorld();
}
}
步骤2 编译Java代码
javac HelloWorld.java
步骤3 创建.h文件
javah –jni HelloWorld 生成HelloWorld.h
步骤4 写本地方法的实现
创建HelloWorldImp.c,用UltraEdit打开
#include <jni.h> #include "HelloWorld.h" #include <stdio.h> JNIEXPORT void JNICALL java_HelloWorld_displayHelloWorld(JNIEnv *env,jobject obj) { printf("Hello World\n"}; return; }
步骤5 创建共享文库
cl –Ic: 本机include目录 –Ic:本机win32目录 -LD HelloWorldImp.c –Fehello.dll
步骤6 执行程序
java HelloWorld
结论: 利用jni技术在Java程序中去访问C语言函数的技术。
4 接口:在接口中所有方法都是抽象方法public abstract。在实现类中所定义的方法访问权限不能低于接口方法权限,所以所有实现类中的方法都是public。执行时 java +类名,不是接口名。实现类中要实现所有接口中的方法。和public类一样,public接口也必须定义在与接口同名的文件中。
5 接口中可以有数据成员,这些成员没人都是public static final。一个接口可以继承另一个接口。