Java 对变量调用方法或将其链接到构造函数更好吗?

Java 对变量调用方法或将其链接到构造函数更好吗?,java,methods,method-call,Java,Methods,Method Call,在任何类上都有调用此类方法的示例 即: 还是使用它更好 new SampleClass().someMethod(); 请详细解释。视情况而定。如果以后要使用SampleClass的任何其他方法,可以在实例中保持该变量(sc)的活动状态。否则, new SampleClass().method(); 这就足够了 两个选项都一样好,但第一个更好 如果你使用 SampleClass sc=new SampleClass(); sc.someMethod(); new SampleClass()

在任何类上都有调用此类方法的示例

即:

还是使用它更好

new SampleClass().someMethod();

请详细解释。

视情况而定。如果以后要使用SampleClass的任何其他方法,可以在实例中保持该变量(sc)的活动状态。否则,

new SampleClass().method();

这就足够了

两个选项都一样好,但第一个更好

如果你使用

SampleClass sc=new SampleClass();
sc.someMethod();
new SampleClass().someMethod();
您可以使用类的同一对象调用该类的其他方法

如果你使用

SampleClass sc=new SampleClass();
sc.someMethod();
new SampleClass().someMethod();
您需要另一个对象来调用此类的其他方法


另一个例子是

loop { // Here loop can be any type, for/while/do-while
    new SampleClass().someMethod();
}
这将创建与循环执行次数相同的类的对象。但如果你选择第一种方式

SampleClass sc=new SampleClass();
loop { // Here loop can be any type, for/while/do-while
    sc.someMethod();
}
这不会导致创建许多要调用方法的对象



但是,是的,如果您需要只调用一个方法,而该方法不在循环中,则可以使用
newsampleclass().someMethod()

除了在第一个选项中,
sc
仍然是一个可用的变量,您可以稍后调用实例方法之外,这两个变量都是完全有效的,不需要额外的上下文

另一方面,如果您有一个类方法(用Java术语来说,是一个
static
方法),则不需要构造对象

SampleClass.someMethod();

第一个选项允许您将来再次访问对象。您有一个对它的引用,因此您将能够调用此对象的其他方法

SampleClass sc = new SampleClass();
sc.someMethod();
后来:

sc.someOtherMethod();

不清楚你在问什么。显然,如果您确实需要对象的变量,那么第一个更好。另外,我也不知道为什么要用Androidtagged with android b’因为我想知道在androidJava中使用Java是Java时有什么不同的while或其他解决方案。这里没有特定于Android的代码。是的,您将看到AsyncTasks执行您所描述的操作,但是您没有指定总是与
new
关键字一起使用时会发生任何内存问题,这就是创建总是新实例@Pankaj
loop{//Here loop可以是任何类型,例如/while/do while new SampleClass().someMethod();}
意味着每次都会发生
new
实例,因此每个实例都会占用内存。@Chirag.T正确。您应该始终注意创建新对象。您应该始终考虑避免尽可能少地创建对象的方法\