gpt4 book ai didi

java - 如何在不知道对象名称的情况下使用对象

转载 作者:行者123 更新时间:2023-12-01 07:23:33 26 4
gpt4 key购买 nike

我不太确定如何表达它,这样它才有意义,但我会尽力。

假设我有两个类。我的主类和一个 Person 类。

我的主类将从 Person 类创建一些对象,如下所示

public class Example {

static Person bob = new Person(23);//Age
static Person fred = new Person(34);
static Person John = new Person(28);
//..and so on

public static void main(String args[]){

..

}
}

在我的Person类中..

public class Person{

private int age;

public Person(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
}

现在,如果我想要 fred 的年龄,我只需调用 Fred.getAge();。但是,在我的程序中,我不知道我的年龄是哪个人。它随机选择一个,我需要获取名称而不直接调用该对象。例如,我的 Person 类中有这样的内容:

public static Object getPerson(){

//Some code to get a random integer value and store it it Var
switch(Var){
case 1:
return bob;
case 2:
return fred;
case 3:
return john;
}
}

我期望这样做的是返回一个对象,然后我可以像这样使用它:

public static void main(String args[]){

System.out.println(Person.getPerson().getAge());

}

我认为首先要调用 getPerson(),它会随机返回 bobfredjohn ,然后它会调用getAge()。因此,如果 getPerson() 返回 fred 那么它将与 fred.getAge();

相同

现在,这不起作用,这是我认为对我来说有意义的唯一方法。

我该如何做到这一点才能真正达到我想要的效果?

我对 Java 和 OOP 非常陌生,这是我第一次真正使用不同的对象。因此,如果我使用了错误的术语并奇怪地解释了事情,我很抱歉。

最佳答案

改变

public static Object getPerson(){

public static Person getPerson(){

您无法对对象调用 getAge,因为对象类型没有定义 getAge()。

关于java - 如何在不知道对象名称的情况下使用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30067764/

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