Java 什么时候应该通过类初始化或getter方法发送变量?

Java 什么时候应该通过类初始化或getter方法发送变量?,java,Java,我有一个屏幕设置,我想发送的宽度和高度到另一个类。在初始化第二个类时,我是否应该将宽度和高度变量发送给第二个类:ClassB=newclassb(宽度、高度)还是在classA中创建getHeight()和getWidth()方法,然后在classB中创建classA的实例来调用getter方法更好 编辑:我觉得在classB中创建classA的实例将是一个糟糕的编程,因为除了我需要width和heightGettersget值、settersset值之外,它是不必要的。你可能是指二传手 这取决

我有一个屏幕设置,我想发送的宽度和高度到另一个类。在初始化第二个类时,我是否应该将宽度和高度变量发送给第二个类:
ClassB=newclassb(宽度、高度)
还是在
classA
中创建
getHeight()
getWidth()
方法,然后在
classB
中创建
classA
的实例来调用getter方法更好


编辑:我觉得在
classB
中创建
classA
的实例将是一个糟糕的编程,因为除了我需要
width
height

Gettersget值、settersset值之外,它是不必要的。你可能是指二传手

这取决于你想做什么:

1。创建实例后是否可以更改
宽度
高度

是:创建一个setter方法,请参见第2条

否:使用构造函数

2。
width
height
是你们班的核心业务吗?

是:最初使用构造函数进行设置

否:不需要使用构造函数


无论采用哪种方式,您都可能希望getter确保封装
宽度
高度
变量(它们应该声明为
私有
)。

根据您的问题,听起来类A除了高度和宽度之外还有与类B无关的数据,在这种情况下,您不应该真正将类A的实例赋予类B。不管怎样,您都可能需要类A中的getter,因为您可能不希望代码中的任何其他对象随意更新值,这意味着宽度和高度应该是类A中的私有变量


如果B类需要宽度和高度,我会让它们成为B类构造器的一部分。否则,我将编写2(或4)个构造函数,一个没有参数,一个同时使用宽度和高度(如果您真的想彻底了解,可以再编写2个构造函数,分别使用高度和宽度)。这将为用户提供在实例化类型B的对象时传递值的选项。在这种情况下,您还需要类B中的高度和宽度设置器,以便用户可以在实例化类型B的对象后设置它们。

在您的上下文中,实现您提到的getter和setter方法将是一个很好的实践。 不需要在ClassB中创建ClassA的实例。就我个人而言,我会这样做:

ClassA a = new ClassA(width, height);
ClassB b = new ClassB(a.getWidth(), a.getHeight());

干杯。

如果维度不变,我会定义它们

public class ClassA{
   public final width;
   public final height;
   ClassA(width, height){
      this.height=height; 
      this.width=width;
   }
}
叫他们:

public class ClassB{
   private final width;
   private final height;
   ClassB(ClassA in){
      this.height=in.height; 
      this.width=in.width;
   }
}
为什么?in.getWidth()vsin.宽度;:保存五个符号


这是55%的生产力提升。

你的直觉是正确的。老实说,你的问题措辞相当困难。如果这不是你想要的,请告诉我,并对你的具体情况进行澄清。我不能百分之百确定我是否了解这个问题背后的想法。