VẤN ĐỀ THAM TRỊ VÀ THAM BIẾN TRONG KỸ THUẬT LẬP TRÌNH
PHÂN TÁN
ĐỐI TƯỢNG
Kế thừa từ lớp Remote: đối tượng được tham khảo theo tham biến (GET OBJECT BY
REFERENCE)
Ví dụ:
RemoteClass: (interface & implement): đối tượng được gọi từ xa
MyRemoteClass.java
import java.rmi.*;
public interface MyRemoteClass extends Remote{
public int getMyAttribute() throws RemoteException;
public void setMyAttribute(int value) throws RemoteException;
}
MyRemoteClassImpl.java
import java.rmi.*;
public class MyRemoteClassImpl implements MyRemoteClass{
private int myAttribute=0;
public int getMyAttribute() throws RemoteException
{
return myAttribute;
}
public void setMyAttribute(int value) throws RemoteException
{
myAttribute=value;
}
}
ServerClass : đăng ký đối tượng RemoteClass
MyRemoteClassServer.java
import java.rmi.server.*;
import java.rmi.*;
public class MyRemoteClassServer{
System.out.println(e);
}
}
}
Hiện thực từ lớp Serializable: đối tượng được tham khảo theo tham trị
RemoteClass: (interface & implement): đối tượng được gọi từ xa
MyRemoteClass.java
import java.rmi.*;
public interface MyRemoteClass extends Remote{
public MySerializableClass myFunction(MySerializableClass c) throws RemoteException;
}
MyRemoteClassImpl.java
import java.rmi.*;
public class MyRemoteClassImpl implements MyRemoteClass{
public MySerializableClass myFunction(MySerializableClass c) throws RemoteException
{
c.setMyAttribute(c.getMyAttribute()*2);//Change c
return c;
}
}
SerializableClass : đối tượng làm tham số gọi qua RemoteClass
MySerializableClass.java
import java.io.*;
public class MySerializableClass implements Serializable{
private int myAttribute=0;
public int getMyAttribute()
{
return myAttribute;
}
public void setMyAttribute(int value)
MySerializableClass myData=new MySerializableClass();
myData.setMyAttribute(16);
System.out.println("Data before call Remote Function: " + myData.getMyAttribute());
//
MySerializableClass myNewData=c.myFunction(myData);
//
System.out.println("Data after call Remote Function: " + myData.getMyAttribute());
System.out.println("Return Data from Remote Function: " + myNewData.getMyAttribute());
}catch(Exception e){
System.out.println(e);
}
}
}