【问题标题】:My member variables are underlined in red in Eclipse [duplicate]我的成员变量在 Eclipse 中用红色下划线 [重复]
【发布时间】:2019-06-15 21:58:07
【问题描述】:

我对 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"; 是一个声明。它是在班级级别上编写的。语句只能写在方法中(以下三行也是如此)。
  • 这些不是您定义变量的行。它们是赋值语句,在类范围内是非法的。

标签: java class object variables


【解决方案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/

【讨论】:

    【解决方案2】:

    对象是在方法中创建的,但您尝试在类中创建它们。我相信你想这样做:

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-19
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多