gpt4 book ai didi

java - 如何使用参数在 Java 中创建实例的方法?

转载 作者:行者123 更新时间:2023-11-29 03:16:45 25 4
gpt4 key购买 nike

所以我是一个新手,正在学习 Java 中的类和面向对象。手机的每个实例都会保存型号、所有者姓名和号码。因此,在主文件中,我尝试使用这些参数和标识符创建一个方法来创建一个新实例。但是,编译表明 mobName 已经在 createMobile 中定义。它应该创建一个可以使用“mob1”指向的实例。有帮助吗?

class PhoneSystem{

public static void main(String[] args){

createMobile("mob1", "Android S4", "John Doe", 13374042);
}

public static void createMobile(String mobName, String brand, String owner, int number){
Mobile mobName = new Mobile();
mobName.SetBrand(brand);
mobName.SetOwner(owner);
mobName.SetNumber(number);
}
}

最佳答案

    public static void createMobile(String mobName, String brand, String owner, int number){
Mobile mobName = new Mobile();
...

这两行是您的问题所在。您已经定义了一个 String mobName。之后,您尝试定义一个与 Mobile mobName 同名的变量。变量不能共享相同的名称,即使在方法声明和方法中也是如此。有一个独特的情况,这是可能的,但涉及字段和实例,超出了这个问题的范围。

既然你想要 mob1 你应该这样做:

        Mobile mob1 = new Mobile();

此外,您还没有指定是希望 mob1 成为它的名称还是它的变量名。如果您希望该设备被称为 mob1,您可能应该将其设置为 Mobile 将设备名称作为字符串。还有另一种方法可以通过 MapMobile 实例与名称相关联,但是由于您说您正在学习 OO,因此这也可能超出范围,因为它涉及 集合.

但是,您提供的当前代码会导致 mob1 在方法结束时超出范围。也许您想将它返回到主类?

    public static Mobile createMobile(String mobName, String brand, String owner, int number){
Mobile mob1 = new Mobile();
...
return mob1;
}

这将允许您创建 mob1 并将其传递给您的 main 方法。

关于java - 如何使用参数在 Java 中创建实例的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26100901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com