通过从方法中复制 return 值来实例化对象是否可以接受?
Is it acceptable to instantiate an object by copying from the return value from a method?
我是 Java 的新人,我最近在我的大学 class 中学习了构造函数。我尝试编写代码来实例化带参数的对象。该脚本使用 Scanner
实例获取输入作为参数。
问题是,如果我创建一个方法来在其中实例化一个对象,该对象将被视为该方法的局部变量。如果我创建一个方法来仅获取参数并使用它们在 main
方法中实例化对象,它会变得有些混乱。我的解决方案是创建一个方法,它是 1. 获取输入,2. 使用构造函数实例化一个对象,以及 3. 返回刚创建的对象。我可以得到我想要的结果,但我不确定这是否可以接受。
这是我的代码:
public class Game {
private int gameID;
private String gameTitle;
private String genre;
// constructor
public Game(int ID, String title, String genre) {
gameID = ID;
gameTitle = title;
this.genre = genre;
}
}
import java.util.Scanner;
public class GameTest {
static Scanner kb = new Scanner(System.in);
public static void main(String[] args) {
Game myGame = constructGame();
}
static Game constructGame() {
int ID = kb.nextInt();
kb.nextLine();
String title = kb.nextLine();
String genre = kb.nextLine();
Game newGame = new Game(ID, title, genre);
return newGame;
}
}
这个解决方案会不会有问题?老实说,我有点担心这里的内存引用。
这是完全可以接受的。如果 constructEmployee
将它使用的 Scanner
作为参数,然后 main
方法将扫描器传递给它,它可能会更干净,但是 per-se 没有错您当前的代码。
我是 Java 的新人,我最近在我的大学 class 中学习了构造函数。我尝试编写代码来实例化带参数的对象。该脚本使用 Scanner
实例获取输入作为参数。
问题是,如果我创建一个方法来在其中实例化一个对象,该对象将被视为该方法的局部变量。如果我创建一个方法来仅获取参数并使用它们在 main
方法中实例化对象,它会变得有些混乱。我的解决方案是创建一个方法,它是 1. 获取输入,2. 使用构造函数实例化一个对象,以及 3. 返回刚创建的对象。我可以得到我想要的结果,但我不确定这是否可以接受。
这是我的代码:
public class Game {
private int gameID;
private String gameTitle;
private String genre;
// constructor
public Game(int ID, String title, String genre) {
gameID = ID;
gameTitle = title;
this.genre = genre;
}
}
import java.util.Scanner;
public class GameTest {
static Scanner kb = new Scanner(System.in);
public static void main(String[] args) {
Game myGame = constructGame();
}
static Game constructGame() {
int ID = kb.nextInt();
kb.nextLine();
String title = kb.nextLine();
String genre = kb.nextLine();
Game newGame = new Game(ID, title, genre);
return newGame;
}
}
这个解决方案会不会有问题?老实说,我有点担心这里的内存引用。
这是完全可以接受的。如果 constructEmployee
将它使用的 Scanner
作为参数,然后 main
方法将扫描器传递给它,它可能会更干净,但是 per-se 没有错您当前的代码。