java - 我的成员变量在 Eclipse 中用红色下划线表示

标签 java class object variables

我对 Java 和 OOP 相当陌生,显然我在定义对象的成员变量时遇到了一些困难。它们用红色下划线表示,我不明白为什么会发生错误。我正在使用 Eclipse 2019 IDE。

我查看了其他一些问题并尝试搜索一些在线教程,但尚未找到解决方案。我相当确定这不是语法问题,而是我不知道的 IDE 的问题?

public class Main {
    class Person{
        String name;
        int age;
        String hairColour;
        String gender;      
    }

    Person person1 = new Person();
    Person person2 = new Person();

    person1.name = "Matt";
    person1.age = 26;

    person2.name = "Julie";
    person2.age = 25;
}

错误出现在我为 person1 和 person2 定义变量的行旁边...在这两种情况下,姓名和年龄都带有下划线。

最佳答案

person1.name = "Matt";(表达式语句)无法在类 block 中执行。

唯一可以在类 block 中执行的语句是声明语句:

Person person1;
//or
Person persion1 = new Person();

表达式语句可以运行到方法 block 中。

如果您想使用直接值实例化 Person 对象,您可以在 Person 类中创建参数化构造函数:

class Person{

    String name;
    int age;
    String hairColour;
    String gender;

    public Person(String name, int age, String hairColour, String gender){

        this.name = name;
        this.age = age;
        this.hairColour = hairColour;
        this.gender = gender;

    }

}

现在您可以在类 block 中创建一个对象 Person ,如下所示:

Person p1 = new Person(" bat 侠", 30, "黑", " bat ");

我还建议阅读这篇文章:

https://www.tutorialspoint.com/java/java_constructors.htm

https://raygun.com/blog/oop-concepts-java/

关于java - 我的成员变量在 Eclipse 中用红色下划线表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614457/

相关文章:

java - 如何在sonarqube中将文件配置为测试文件?

javascript - 再次: JS functions and objects

java - 自定义标签不计算表达式; c 和 fmt 标签正在评估表达式

java - 为什么在方法参数上同步是 "dangerous"

java - 在eclipse中查找实现抽象类的所有具体类

java - 当在不同的类中使用时,我的PrintWriter的值变得无效

java - 将成员对象添加到 ArrayList<Membership>

javascript - 如何从 JSON 对象中的键中获取值?

java - 终端无法运行apktool

c# - 如何获取 iTextSharp.text.pdf.parser.Vector 对象的 x、y、z 值?