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

时间:2019-06-15 21:58:07

标签: 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定义变量的行旁边。在两种情况下,名称和年龄都带有下划线。

2 个答案:

答案 0 :(得分:1)

person1.name = "Matt";(表达式语句)不能在类块中执行。

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

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

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

如果要使用直接值实例化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;

    }

}

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

Persone p1 = new Person("Batman", 30, "black", "bat");

我还建议您阅读以下文章:

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

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

答案 1 :(得分:0)

对象是在方法内部创建的,但是您尝试使它们成为类。我相信您想这样做:

public static void main(String [] args){
    Person person1 = new Person();
    Person person2 = new Person();

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

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