Java—如何在多个类中使用同一对象
我是新来的,请原谅我可能犯的错误:) 我正在写一个游戏,作为我的编码课程的最后一个项目。而且…我真的被卡住了。我想创建某个类的一个对象,但稍后我需要传递来自其他不同类的不同数据,以便在使用程序结束时保存所有数据 例如,我在大型机中创建一个对象,并从中获取一个用户的名称。然后我转到下一帧,获取用户的年龄等 如果能用尽可能简单的英语回答,我将不胜感激,因为我不太流利:) 顺便说一句,我正在使用netbeans。Java—如何在多个类中使用同一对象,java,swing,class,object,Java,Swing,Class,Object,我是新来的,请原谅我可能犯的错误:) 我正在写一个游戏,作为我的编码课程的最后一个项目。而且…我真的被卡住了。我想创建某个类的一个对象,但稍后我需要传递来自其他不同类的不同数据,以便在使用程序结束时保存所有数据 例如,我在大型机中创建一个对象,并从中获取一个用户的名称。然后我转到下一帧,获取用户的年龄等 如果能用尽可能简单的英语回答,我将不胜感激,因为我不太流利:) 顺便说一句,我正在使用netbeans。 非常感谢 只需将对象传递给您想要的类,并在您想要的方法中相应地使用它!下面是一个包含两个
非常感谢 只需将对象传递给您想要的类,并在您想要的方法中相应地使用它!下面是一个包含两个类的示例:
class oneClass {
void oneMethod() {
Class1 myClass1 = new Class1();
Class2 myClass2 = Class2 Class2();
myClass2.setMyClass1(myClass1);
}
}
class Class2 {
Class1 myClass1;
//...
void setMyClass1(Class1 myClass1) {
this.myClass1 = myClass1;
}
//...
void doSomething() {
// do something with instance variable myClass1
}
}
在您的情况下,Class1
可以是MainFrame
,Class2
可以是NextFrame
,或者您想如何称呼它们
从我的代码中可以看到,使用以下代码行将类
myClass1
传递到myClass2
:myClass2.setMyClass1(myClass1)
然后,您可以以任何方式使用此对象只要使用方法将您的大型机
类的对象发送到您想要的任何位置即可。当您从不同的方法更改对象时,该对象将包含来自的所有数据
如果你需要一个单独的对象<代码>主机> /代码>,那么你可以考虑使用模式来创建对象。p> 要将内容保存到文件(或流),可以使用interface serializable:
import java.io.Serializable;
import java.util.ArrayList;
public class Test implements Serializable {
public ArrayList<Object> urDiferentKindOfThings = new ArrayList<Object>();
public boolean add(Object o) {
if (o != null) {
urDiferentKindOfThings.add(o);
return true;
}
return false;
}
}
import java.io.Serializable;
导入java.util.ArrayList;
公共类测试实现可序列化{
public ArrayList urDiferentKindOfThings=new ArrayList();
公共布尔加法(对象o){
如果(o!=null){
添加(o);
返回true;
}
返回false;
}
}
现在,只需添加您想要保存的任何内容(对象!),然后在游戏结束时只需保存应包含所有内容的类型测试对象(您可能需要阅读有关serializable的内容,因为它使生活变得简单)
好看只需尝试单例设计模式即可 举个简单的例子:
class SingletonClass {
private static SingletonClass instance = null;
private String customAttribute;
public SingletonClass() {
//default constructor stuff here
}
//important singleton function
public static SingletonClass getInstance() {
if(instance == null)
instance = new SingletonClass();
return instance;
}
// getter and setter
}
现在,在框架或任何其他类中,只需执行以下操作:
SingletonClass myObject = SingletonClass.getInstance();
第一次调用此函数时,将创建一个新对象。稍后,它将返回第一个创建的。借助单例模式,您可以轻松地跨多个类在一个对象中保存数据
有关Singleton的更多信息:
希望这有帮助。您将类实例传递到管理类中
class a{
function dosomething(){
//code goes here
}
}
class b{
a firstobject=new a();
c secondobject=new c(a objtopass); //passing object of a to c
function donext(){
//next code
}
}
class c{
a receivedobj=null;
public c(a objtoreceive){
//constructor
receivedobj=objtoreceive;
}
function doAdd(){
//function code
}
}
public class Game {
private MainFrame mainframe = null;
private NextFrame nextframe = null;
public Game(){
this.mainFrame = new MainFrame();
this.nextFrame = new NextFrame();
}
public Game(MainFrame mainFrame, NextFrame nextFrame){
this.mainframe = mainFrame;
this.nextframe = nextFrame;
}
public String getName(){
return mainFrame.getName();
}
public int getAge(){
return nextFrame.getAge();
}
}
public class MainFrame {
private String name = "John"
public String getName(){
return name;
}
}
public class NextFrame{
private int age = 25;
public int getAge(){
return age;
}
}
将对象传递给所需的方法,并访问必要的字段。如果需要对象属性的值来创建另一个对象,请创建需要该对象的构造函数,并在构造函数中访问其字段。可以将类的引用传递给其他每个类,也可以创建静态实用程序类或使用搜索键创建单例。仅仅一匙输入代码并不是答案。你必须解释。