Tag: oop

使用Class.forName()初始化一个类,该类具有一个带参数的构造函数

我正在实例化这样一个类。 myObj = (myObj) Class.forName(“fully qualified class name here”).newInstance(); 我怀疑的是,如果我们有一个构造函数,它接受参数如何像上面那样实例化它。 谢谢, 纳伦德拉

OO设计和循环依赖

在设计我的类时,我目前正在努力解决循环依赖问题。 自从我读到有关贫血领域模型 (我一直在做的事情)以来,我一直在努力摆脱创建只是“吸气剂和孵化器”的域对象并回到我的OO根源。 但是,下面的问题是我经常遇到的问题,我不知道应该如何解决它。 假设我们有一个Team类,它有很多玩家 。 这是什么运动并不重要:)球队可以添加和删除球员,就像球员离开球队并加入另一球员一样。 所以我们有一个团队,其中有一个玩家列表: public class Team { private List players; // snip. public void removePlayer(Player player) { players.remove(player); // Do other admin work when a player leaves } } 然后我们有了Player,它引用了Team: public class Player { private Team team; public void leaveTeam() { team = null; // Do some more player stuff… […]

Java中是否存在用于满足接口的空方法的习惯用法?

假设我有一个类Foo实现了一个接口,例如MouseListener 。 MouseListener接口由五个方法组成,但我只希望覆盖其中一个方法( mouseClicked() )。 是否有一种标准的,惯用的格式化其他方法的方法? 我倾向于写下以下内容: @Override public void mouseClicked(MouseEvent e) { // (…) <– actual code here } @Override public void mouseEntered(MouseEvent e) { // Do nothing. Exists to satisfy MouseListener interface. } @Override public void mouseExited(MouseEvent e) { // Do nothing. Exists to satisfy MouseListener interface. } @Override public void mousePressed(MouseEvent e) […]

依赖与构成之间的区别?

定义取自这里 依赖 类的结构或行为的变化会影响其他相关类,然后这两个类之间存在依赖关系。 反之亦然,它不一定相同。 当一个类包含另一个类时,就会发生这种情况。 组成 组合是聚合的特例。 以更具体的方式,受限制的聚合称为组合。 当一个对象包含另一个对象时,如果所包含的对象不存在而不存在容器对象,那么它就称为组合。 Java中的具体示例来自此处和此处 依赖 class Employee { private Address address; // constructor public Employee( Address newAddress ) { this.address = newAddress; } public Address getAddress() { return this.address; } public void setAddress( Address newAddress ) { this.address = newAddress; } } 组成 final class Car { private final […]

但是,不应该过度使用创建静态实用程序方法? 怎么避免呢?

随着时间的推移……在java项目中引入了大量的实用方法,以实现更复杂,更简单的任务。 当使用静态方法时,我们在代码中引入紧耦合,这使得我们的代码更难以测试,特别是如果实用方法非常复杂。 我只是觉得现在很难管理和测试这些实用程序。 请指导我避免使用这些实用程序方法,以及如何组织现有项目以删除所有STATIC实用程序。 你能帮我避免静态方法吗?

为什么可以在PHP中覆盖实例变量而不是在Java中?

考虑以下代码: name; } } class Foo extends Base { protected $name = “Foo”; } $f = new Foo(); echo $f->getName(); // output: Foo $b = new Base(); echo $b->getName(); // output: Base 因为在Java等其他语言中不允许覆盖实例变量,但在PHP中是可能的。 是因为PHP是弱类型语言所以有可能吗?

Java抽象类或静态实用类设计选择

我正在实施一些具有一些共同行为的战略(战略模式) ,并且尚未确定共同运营应该存在的地方。 假设我有1个上下文和3个策略,策略中使用的一些操作是共享的,有些仅需要2个其他操作,只需要1个策略。 没有成员级别的状态共享,因此唯一的操作实际上是无状态的。 操作的目的是支持将状态格式化为文件,例如视图助手。 选项1:创建一个AbstractStrategy类 我正在使用Java,因此将来会立即使用此function。 inheritance倾向于导致。 在一个山脊结构。 操作将是最终的。 选项2:创建一个Util类的静态助手 灵活,但由于某种原因感觉像代码味道。 没有山脊。 任何建议或偏好? 请注意,我正在处理的级别是策略级别,而不是上下文级别(请参阅维基百科链接)。

如何在Java中编写自己的标记接口?

我知道java中的标记界面。 它用于定义关于类的特定行为。 例如,Serializable接口具有将对象存储到字节流及其反向过程的特定function。 但我不知道这个特定行为的实现位置,因为它没有任何方法。 JVM如何调用此特定行为? 如何编写我们自己的标记界面? 你能给我一个简单的用户定义标记界面供我理解吗? 是否可以在标记界面中使用方法? 请指导我解决此问题。

为什么Java不支持<<< oprerator

为什么Java不支持<<< (无符号左移)运算符,但是支持>>> (无符号右移)运算符?

Java中抽象类的目的是什么?

我对抽象类及其用法有一些疑问。 我知道他们的基本知识; 例如,他们无法实例化,他们可以采用具体和抽象的方法,……但我想我想知道的是, 他们在生活中服务的目的是什么(在软件工程中)? Java中抽象类的目的是什么? 为什么以及何时应该使用Abstract类? 如果你可以使用普通类然后inheritance它,为什么要inheritance一个抽象类? 如何使用抽象类让我们的生活更轻松? 它会提供更好的可维护性吗? 更灵活? … 顺便说一句,我已经看过一些类似的问题和答案,包括理解Java中抽象类的目的 ,但它们没有回答我的问题。 我更倾向于寻找能够揭示Java中引入抽象类背后的哲学的答案。 谢谢