Java实验:实现自行定义的一个类,及相应的功能:该类中定义实现将两个对象作为自己的成员变量的function,参数类型为两个对象,函数对该两个对象进行修改,并将修改后的对象进行保存,读取,然后再返回修改后的该两个对象;在主类中实现对于该类、该功能的调用的程序
时间: 2024-02-21 19:57:38 浏览: 34
好的,以下是一个示例程序,用于实现您所说的功能:
```
import java.io.*;
// 定义一个名为 MyClass 的类
class MyClass implements Serializable {
// 定义两个成员变量 obj1 和 obj2
private Object obj1;
private Object obj2;
// 实现将两个对象作为自己的成员变量的 function
public void modifyObjects(Object newObj1, Object newObj2) {
// 对 obj1 和 obj2 进行修改
obj1 = newObj1;
obj2 = newObj2;
}
// 保存修改后的对象
public void saveModifiedObjects(String fileName) throws IOException {
// 创建一个 ObjectOutputStream 对象
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fileName));
// 将 MyClass 对象写入文件中
out.writeObject(this);
// 关闭输出流
out.close();
// 输出保存成功的信息
System.out.println("Objects saved.");
}
// 读取修改后的对象
public void loadModifiedObjects(String fileName) throws IOException, ClassNotFoundException {
// 创建一个 ObjectInputStream 对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));
// 从文件中读取 MyClass 对象
MyClass myClass = (MyClass) in.readObject();
// 将 obj1 和 obj2 的值设置为从文件中读取的值
obj1 = myClass.obj1;
obj2 = myClass.obj2;
// 关闭输入流
in.close();
// 输出读取成功的信息
System.out.println("Objects loaded.");
}
// 返回修改后的该两个对象
public Object[] getModifiedObjects() {
// 创建一个数组并将 obj1 和 obj2 放入其中
Object[] modifiedObjects = {obj1, obj2};
// 返回修改后的对象数组
return modifiedObjects;
}
}
// 主类
public class Main {
public static void main(String[] args) {
try {
// 创建一个 MyClass 的实例
MyClass myClass = new MyClass();
// 调用 modifyObjects 方法修改 obj1 和 obj2
myClass.modifyObjects("Hello, ", "world!");
// 调用 saveModifiedObjects 方法保存修改后的对象
myClass.saveModifiedObjects("objects.dat");
// 调用 loadModifiedObjects 方法读取修改后的对象
myClass.loadModifiedObjects("objects.dat");
// 调用 getModifiedObjects 方法返回修改后的对象数组
Object[] modifiedObjects = myClass.getModifiedObjects();
// 输出修改后的对象数组
System.out.println(modifiedObjects[0] + modifiedObjects[1]);
} catch (Exception e) {
// 输出异常信息
e.printStackTrace();
}
}
}
```
这个程序会输出以下内容:
```
Objects saved.
Objects loaded.
Hello, world!
```
请注意,这只是一个示例程序,您需要根据您的具体需求进行修改和优化。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)