gpt4 book ai didi

java - 我的一个类中的一个变量 "cannot be resolved or is not a field"

转载 作者:行者123 更新时间:2023-12-03 23:06:30 24 4
gpt4 key购买 nike

这是我的类 Person.java(已简化以删除我认为与问题无关的文本):

public class Person {
int myIdNumber;
String myName;
String myBirthday;
String myType;
Person(String forTheName, int forTheId, String forTheBirthday, String forTheType){
this.myIdNumber = forTheId;
this.myName = forTheName;
this.myBirthday = forTheBirthday;
this.myType = forTheType;
}
}

这里是 PersonAdd.java(同样经过简化):

import javax.swing.JOptionPane;
public class PersonAdd {
public static int numOfPeople = 0;
static String instruction = "Enter the person's ";
static String theName;
static String theBirthday;
static String theType;
static void entryText(){
numOfPeople++;
theName = JOptionPane.showInputDialog(null, instruction + "name.", "Add People", JOptionPane.QUESTION_MESSAGE);
theBirthday = JOptionPane.showInputDialog(null, instruction + "birthday.", "Add People", JOptionPane.QUESTION_MESSAGE);
theType = JOptionPane.showInputDialog(null, instruction + "type.", "Add People", JOptionPane.QUESTION_MESSAGE);
}

public static void main(String[] args) {
entryText();
Object person1 = new Person(theName, numOfPeople, theBirthday, theType);
entryText();
Object person2 = new Person(theName, numOfPeople, theBirthday, theType);
entryText();
Object person3 = new Person(theName, numOfPeople, theBirthday, theType);
String response = person1.myName;
JOptionPane.showMessageDialog(null, response);
}
}

预期的结果是最后一个对话框显示给定的名称,但它不起作用,尽管我相信它存储了正确输入的数据。关键问题在线路上

String response = person1.myName;

无法解析或不是字段。如果我添加一个 get 方法并使用它而不是 myName,也会发生这种情况。 Eclipse 似乎甚至看不到 person1 的任何对象。

我敢肯定这与我未能理解继承、静态/非静态或其他方面有关。 (这种类和对象的东西对我来说特别难以掌握;我在“SQL 模式”下思考并希望能够说出类似“从哪里选择”的东西。)

最佳答案

您已将变量声明为 Object 类型,这是每个引用类型的基本类型,即。它是您的 Person 类的父类。

因此,您只能通过 Object 访问可用的字段和方法类型。

您需要将您的变量声明为 Person 类型

Person person1 = new Person(...);

或者在你使用之前转换变量

String response = ((Person) person1).myName;

另外,注意你的 access modifiers.

关于java - 我的一个类中的一个变量 "cannot be resolved or is not a field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890770/

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