我有一个名为StatisticFrame
. 此类创建一个stats
在方法内命名的对象。如何将这个从StatisticFrame
类创建的对象传递给另一个类?
7 回答
在 StatisticFrame 类中保留一个指向接收器对象(比如 TargetFrame 类)的变量,然后调用接收器对象中定义的方法(比如 SetStatsObject(object obj))来接收对象。
您的 StaticFrame 类将如下所示
class StatisticFrame {
private TargetFrame targetObject = null;
public StatisticFrame (TargetFrame obj) {
this.targetObject = obj;
}
public void Send (Object stats) {
object stats = GetStatsObject(); // this will create and returns stats object
targetObject.SetStatsObject(stats);
}
//...
}
你的 TargetFrame (接收对象的类)应该是这样的
class TargetFrame {
public void SetStatsObject(Object stats) {
// Do what ever you want with stats
}
// .....rest of the methods follows
}
您可以将创建的对象作为参数传递给另一个类构造函数或其方法。
class Apples{
public static void main(String[] args){
ApplesTestDrive obj = new ApplesTestDrive();
ApplesSampleTestDrive objOne = new ApplesSampleTestDrive();
// Pass created object obj as argument to ApplesSampleTestDrive method.
objOne.paint(obj);
}
}
class ApplesTestDrive{
public String bucket;
public ApplesTestDrive(){
bucket = "blue";
}
}
class ApplesSampleTestDrive{
public void paint(ApplesTestDrive obj){
System.out.println("Paint apple one: " + obj.bucket);
}
}
一种方法是您可以在“另一个类”中创建方法,该方法将接受您要传递的参数对象,然后从基类中调用该方法
class Sender{
public void createAndSend(Reciever reciver){
String s="some data from Producer";
reciver.recieve(s);
}
}
class Reciever{
public void recieve(String data){
System.out.println("I recieved "+data);
}
}
//lets test it
class TestX{
public static void main(String[] args) {
Sender s=new Sender();
Reciever r=new Reciever();
s.createAndSend(r);
}
}
输出:I recieved some data from Producer
有多种方法可以实现这一目标。要么将方法的返回类型设置为stats
,然后在其他类中创建对象StatisticFrame
并调用该方法。
StatisticFrame sf=new StatisticFrame();
Stats st=sf.method();
另一种方法是,如果您不想将返回类型设置为Stats
然后创建类型的全局private
变量Stats
并在您的方法中分配它,然后一个public
getter
方法会将这个对象返回给其他类。
Another class
需要一个方法作为argument
期望您的stats
对象并从您的类中调用该方法并传递您的 stats 对象
private void yourmethod(){
Stats stas =
AnotherClass ac = new AnotherClass();
ac.thatMethod(stats);
}
class AnotherClass {
public void thatMethod(Stats stats){
}
}
您可以使用接受新创建对象的构造函数为要传递该对象的其他类创建一个对象。另一种可以使用接口的回调函数的方法
单程 :-
假设您有一个类 Xyz 您想要为其创建 getter 方法的对象,在另一个类 Abc 中创建 Xyz 的对象,并使用该对象调用 getter 方法并将其返回存储在您当前的类中
第二种方式:-
使用继承使类成为超级类
类 Abc 扩展 Xyz 通过这个你将直接访问所有对象,超类中存在的方法
希望这对你有意义