Java 创建对象并在构造函数中使用它

Java 创建对象并在构造函数中使用它,java,constructor,Java,Constructor,假设我们有一个叫做迷宫的类。现在假设我们有另一个名为MazeSolver的类。因此,为了在MazeSolver中创建Maze对象,为了使用Maze中的方法,我们创建了private Maze-Maze。然后在MazeSolver的构造函数中,我们还编写了publicmazesolver(mazemaze)。我的问题是,为什么我们两个都要做?这个想法背后的哲学是什么?为什么我们不能做一个或另一个而不是两个都做,我想这是我困惑的地方。好的,有一个字段/变量存储迷宫引用: private Maze m

假设我们有一个叫做迷宫的类。现在假设我们有另一个名为
MazeSolver
的类。因此,为了在
MazeSolver
中创建
Maze
对象,为了使用Maze中的方法,我们创建了
private Maze-Maze
。然后在
MazeSolver
的构造函数中,我们还编写了
publicmazesolver(mazemaze)
。我的问题是,为什么我们两个都要做?这个想法背后的哲学是什么?为什么我们不能做一个或另一个而不是两个都做,我想这是我困惑的地方。

好的,有一个字段/变量存储迷宫引用:

private Maze maze;
还有一个构造函数,在这里传递和设置迷宫引用

public MazeSolver(Maze maze) { this.maze = maze; }

除此之外,您还需要问一个更具体的问题。

迷宫引用存储在一个字段/变量中:

private Maze maze;
还有一个构造函数,在这里传递和设置迷宫引用

public MazeSolver(Maze maze) { this.maze = maze; }
除此之外,你还需要问一个更具体的问题。

这里你有两个选择 第一个是你可以这样使用

public MazeSolver(Maze maze) { 
this.maze = maze; 
}
第二种选择是

public MazeSolver() { 
maze = new maza();; 
}
实际上,您的需求是您需要使用maza行为,因此在这种情况下,您需要一个maza类的实例(如果这些方法是非静态的)。这就是为什么您需要初始化或将对象指定给maza

我希望这将帮助您了解您的需求

这里您有两个选择 第一个是你可以这样使用

public MazeSolver(Maze maze) { 
this.maze = maze; 
}
第二种选择是

public MazeSolver() { 
maze = new maza();; 
}
实际上,您的需求是您需要使用maza行为,因此在这种情况下,您需要一个maza类的实例(如果这些方法是非静态的)。这就是为什么您需要初始化或将对象指定给maza

我希望这能帮助你理解你的要求