本文目錄一覽:
java怎麼調用方法?
對象調方法
class A
{
public void Out()//方法
{
System.out.println(“a”);
}
public static void main(String[] agrs)
{
A a=new A();//a是對象
a.Out();
}
}
java中如何調用其他java文件?
你所說的java文件是什麼文件?如果是java源碼文件是不能調用的,但如果是編譯後的class文件可以通過類加載器進行加載,然後通過反射調用;但一般會通過實現特定的接口來簡化調用過程。一個自定義的類加載器如下 :
class MyClassLoader extends ClassLoader {
//類加載器的名稱
private String name;
//類存放的路徑
private String path = “E:\\bin”;
MyClassLoader(String name) {
this.name = name;
}
MyClassLoader(ClassLoader parent, String name) {
super(parent);
this.name = name;
}
/**
* 重寫findClass方法,加載特定目錄下的類文件
*/
@Override
public Class? findClass(String name) {
byte[] data = loadClassData(name);
return this.defineClass(name, data, 0, data.length);
}
public byte[] loadClassData(String name) {
try {
name = name.replace(“.”, “//”);
FileInputStream is = new FileInputStream(new File(path, name + “.class”));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int b = 0;
while ((b = is.read()) != -1) {
baos.write(b);
}
return baos.toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Java對象怎麼調用
java對象中,除了基本類型,其他對象傳遞都是地址傳遞,雖然java取消了指針的設定,但是其內部還是使用指針操作的,定義一個對象就相當於定義了一個對象類型的指針,這個指針的值為null,如果不進行初始化的話自然會報空指針異常,也就是NullPointerException。即使是基本類型,如果不初始化直接調用的話一樣會報異常的。
上面的main方法中,map對象只是被創建並沒有初始化,只是在前面創建了一個Map類的指針但並沒有告訴系統具體指向,也就是map的值為null。
如以下方式:
static Map map;
public static void main(String[] args)
{
map=new Map();
map.seach();
}
程序就可以正常運行。
這兩種創建對象的方法都是可以的。第一種在方法外創建就是作為一個類的屬性,這個時候這個對象的生存周期是相當長的,你可以在一個方法中初始化後在其他方法中繼續調用,其他方法對其造成的修改會都會影響到下一次調用的結果。甚至可以在其他類中調用這個變量。當然如果調用到的是沒有初始化的對象一樣會報空指針。
後一種方式是在方法中創建對象進行操作,這時候這個對象的生存周期只限制於這個方法。每次調用這個方法的時候都會重新創建一個這樣的對象。想將這個對象拿出去只有在創建後用set方法或者是使用return 返回。
例如:
Map map=new Map();
map.seach();
//假設OtherObj對象有setMap方法,使用set方法取出map對象
OtherObj.setMap(map);
或者就寫成:
public Map getMap(){
Map map = new Map();
return map;
}
此外,static標記表示這個對象是類共有的,調用的時候甚至不需要創建你這個類的對象直接通過類名就可以調用出來。例如jdk中的java.awt.Color類裡面可以直接取出一些特定的顏色,只需要調用Color.RED等方法即可。不需要另外創建Color對象
如何在C/C++中調用Java
對於本地函數
JNIEXPORT void JNICALL Java_video1_TestNative_sayHello(JNIEnv * env, jobject obj)
{
cout”Hello Native Test !”endl;
}
JNIEnv類型代表Java環境。通過這個JNIEnv*指針,就可以對Java端的代碼進行操作。如,創建Java類得對象,調用Java對象的方法,獲取Java對象的屬性等。
JNIEnv的指針會被JNI傳送到本地方法的實現函數中來對Java端的代碼進行操作
JNIEnv類中的函數:
NewObject/NewString/NewTYPEArray :new新對象
Get/SetTYPEField:獲取屬性
Get/SetStaticTYPEField :獲取靜態屬性
CallTYPEMethod/CallStaticTYPEMethod
原創文章,作者:BKLB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140903.html
微信掃一掃
支付寶掃一掃