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
我希望这能帮助你理解你的要求