动态创建对象

时间:2017-12-25 01:29:57

标签: java oop

我是java的新手,我无法理解动态创建对象的概念。我知道对象是在运行时创建的,并且已经看到了使用数组进行动态创建的方法,但这看起来有点复杂,我只能假设我没有按照Java方式做事。

例如,如果我有一个班级狗:

public class Dog {
    int age;

    public void setAge(int age){
        this.age = age;
    }
}

我想创建一只新狗并设定它的年龄:

dog newDog = new dog();

newDog.setAge(3);

然后没有问题。但是,如果我想将用户输入带到我拿狗名称并使用该名称作为对象本身的名称,那么我会碰到一些砖墙。我设想了以下几点:

Scanner sc = new Scanner(System.in);
dog sc.Next() = new dog();

此外,提前不知道新创建的对象的名称似乎无法引用它(例如,对于setter方法)。

正如我所说的,我确信我的大脑不是用java思考的。我更习惯用vba或python以线性方式编程,我认为OOP让我的脑袋旋转。任何人都可以指出我的任何资源可能会帮助我看到树木的木材将非常感激。我已经搜索过网络,试图找到迄今为止没有成功的东西。

1 个答案:

答案 0 :(得分:0)

  

但是,如果我想把用户输入带到狗的名字和   使用该名称作为对象本身的名称

在Java中,无法读取用户输入并将其用作对象的标识符(变量名称)。相反,你需要这样的东西:

Scanner sc = new Scanner(System.in);
String name = sc.nextLine(); // read the user input

Dog dog = new Dog();  // create a Dog instance where dog is the identifer
dog.setName(name);  // set the dog name provided by the user