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%的生产力提升。你的直觉是正确的。老实说,你的问题措辞相当困难。如果这不是你想要的,请告诉我,并对你的具体情况进行澄清。我不能百分之百确定我是否了解这个问题背后的想法。