Java 可空构造函数和带变量的方法的优缺点是什么

Java 可空构造函数和带变量的方法的优缺点是什么,java,Java,这可能是一个非常基本的问题,但目前我正在使用spring进行练习,请注意,@autowire注释创建了一个后台没有变量的构造函数,并强制使用方法 现在我有一个问题,它们之间有什么区别 public class Example { private String stuffA; private String moreStuffB; private User user ; public Example(String stuffA, String moreStu

这可能是一个非常基本的问题,但目前我正在使用spring进行练习,请注意,
@autowire
注释创建了一个后台没有变量的构造函数,并强制使用方法

现在我有一个问题,它们之间有什么区别

public class Example {

    private String stuffA;

    private String moreStuffB;

    private User user ;


    public Example(String stuffA, String moreStuffB, User user) {
        this.stuffA = stuffA;
        this.moreStuffB = moreStuffB;
        this.user = user;
    }

    public String ShowUserName (){

        return user.getFirstName();

    }

    public String ShowStuff(){

        return stuffA + " " + moreStuffB;

    }

}
这是:

public class Example {



    public Example() {
    }

    public String ShowUserName (User user){

        return user.getFirstName();

    }

    public String ShowStuff(String stuffA,String moreStuffB){

        return stuffA + " " + moreStuffB;

    }

}
首选的方式是什么?还是取决于具体情况?
在这两个例子中,赞成和反对的是什么

在第一种情况下,调用
example.showtuff()

在第二种情况下,调用
example.showtuff(“stuff”,“moreStuff”)

区别在于调用方是否需要能够提供这两个对象的值,或者它们是对象实例的一部分

以下两者结合的真实示例:

dateFormatter.format(yesterday)

在这里,调用者提供要格式化的日期,但dateFormatter知道应该使用什么格式模式。

在第一种情况下,您调用
示例.showStuff()

在第二种情况下,调用
example.showtuff(“stuff”,“moreStuff”)

区别在于调用方是否需要能够提供这两个对象的值,或者它们是对象实例的一部分

以下两者结合的真实示例:

dateFormatter.format(yesterday)

在这里,调用者提供要格式化的日期,但dateFormatter知道应该使用什么格式模式。

默认构造函数在第二个代码段中是多余的,在第一个代码段中不存在。为什么要使用实例变量?字符串和示例类HAS-A或USES之间的关系是什么?但是有没有更好的方法,因为在这种情况下,它们是不同的,但给出相同的结果。什么时候应该使用A或B。你所说的“空构造函数”和“具有所有变量的方法”到底是什么意思?默认构造函数在第二个代码段中是多余的,在第一个代码段中不存在。为什么要使用实例变量?字符串和示例类HAS-A或USES之间的关系是什么?但是有没有更好的方法,因为在这种情况下,它们是不同的,但给出相同的结果。什么时候应该使用A或B。你所说的“空构造函数”和“带所有变量的方法”到底是什么意思?