相关疑难解决方法(0)

Java - 应该通过getter和setter方法在构造函数中访问私有实例变量吗?

我知道私有实例变量是通过他们的公共getter和setter方法访问的.

但是当我在IDE的帮助下生成构造函数时,它直接初始化实例变量,而不是通过setter方法初始化它们.

Q1.因此,我应该为构造函数更改IDE生成的代码,以通过其setter方法初始化这些实例变量.

Q2.如果是,那么IDE为什么不以这种方式生成构造函数代码?

============================= EDITED ==================== ===================

  • 我使用Eclipse和Netbeans IDE

  • 这是一个普遍的问题.但正如@Lords所要求的那样,答案取决于我们的构造函数是公共的还是受保护的,还是私有的还是私有的?

java oop setter constructor

10
推荐指数
1
解决办法
4673
查看次数

只能在初始化对象后调用方法 - 如何继续?

我在我的日常编码中发现了一个反复出现的模式,如下所示:

var foo = new Foo();
foo.Initialize(params);
foo.DoSomething();
Run Code Online (Sandbox Code Playgroud)

在这些情况下,foo.Initialize绝对需要它实际上DoSomething,否则一些foo属性仍然null/未初始化.

它有一个模式吗?如何安全地确保DoSomething将只/总是被称为 Initialize?如果不这样做又如何继续:我应该提出异常,默认忽略它,检查一些标志......?

language-agnostic oop

0
推荐指数
1
解决办法
45
查看次数

标签 统计

oop ×2

constructor ×1

java ×1

language-agnostic ×1

setter ×1