我最近才开始学习Java,但遇到了一个问题。我有一些通过类构造函数创建的对象,并且我想在其他类中使用这些声明的对象。对象的内容通过变量设置。
因此,一个简单的解决方案是将变量设置为静态,然后通过在另一个类中调用它们(仅作为示例)
Originalclass.staticVariable
并以此作为我的参数。
因此,可以说我的原始类是Firstclass,我要创建的对象称为superObject,而要应用于我的对象的变量称为variableIneed。如果要在另一个类中创建对象,则输入
Firstclass superObject = new Firstclass(Firstclass.variableIneed);
这可行,但我想知道,是否可以在原始类中创建对象,然后在其他类中使用它?这样做有好处吗?
很抱歉,如果这是一个重复的问题或不够具体,这是我的第一篇文章。:)
如果我的代码可以帮助回答我的问题,我将很乐意提出,但是由于我的代码很好,所以我觉得这与所要询问的内容无关。
如果在类中创建对象,则通常不希望通过简单地将其设置为“共享所创建的对象” static
(尤其是当您不确定static的含义时)。
不要滥用static
。static
成员实际上属于类本身,而不是特定对象。因此,在开始将变量声明为之前static
,您要考虑它是属于该类的属性吗?还是属于单个对象的属性?
此外static
,所有对象之间共享更多变量。(您只有一个副本)。因此,如果您在许多其他类之间共享它,则它的值可能会从“共享”到的任何一个类的值中更改,从而使您的类紧密耦合(并且您想避免这种情况)。
除非对象属于该类,并且它可能是一个常量(声明为final
),否则您可能不想通过将其声明为来共享它static
。
这可行,但我想知道,是否可以在原始类中创建对象,然后在其他类中使用它?这样做有好处吗?
如果我是你,并且需要与其他类“共享”我的对象,我将通过一个方法(getter方法)传递它。
范例:
class Car{
private Engine engine;
//Constructor not shown
//a getter method
public getEngine(){
return engine;
}
}
class Runner{
public static void main(String[] args){
Car c = new Car();
Engine engine = car.getEngine(); //retrieve engine from car (for whatever use)
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句