&引用;“封闭式”;处理/Java时出错

&引用;“封闭式”;处理/Java时出错,java,class,processing,Java,Class,Processing,下面的处理/Java代码有什么问题吗 class SensorData{ private float temperature; private float distance; SensorData(float temperature, float distance) { this.temperature = temperature; this.distance = distance; } float getTemperature() { r

下面的处理/Java代码有什么问题吗

class SensorData{
  private float temperature;
  private float distance;

  SensorData(float temperature, float distance) {
    this.temperature  =  temperature;
    this.distance  =  distance;
  }

  float getTemperature() {
    return this.temperature;
  }

  float getDistance() {
    return this.distance;
  }
}
我一直得到以下信息:

The nested type SensorData cannot hide an enclosing type

上下文是一个处理项目,SysRoDATA类被用作同一个项目文件夹中的草图对象。

< P>第一个问题是它不是C++。 <>在C++中,访问说明符(<代码>公共<代码> >代码>保护< /COD>和<代码>私下<代码>不是成员声明的一部分,而是成员规范的一部分。因此,它们通过冒号(
)从成员声明中分离出来,并应用于以下所有成员声明,直到下一个访问说明符

隐式
this
是指针类型,因此要访问它的字段,可以使用
操作符->


一个C++类定义(或类说明符)语句并不是由<代码> } /代码>终止,而是由下面的<代码> > <代码>。您可以选择在终端

之前定义一个或多个类类型的变量 

多个东西,因为你不是在写C++,而是C或java:< /p> < C++ >代码>此是指针,因此需要<代码> -> /COD>访问元素。< /P> 另外,为什么参数和成员使用相同的名称?它之所以有效,是因为您在成员之前使用了
this->
,但我建议您更改参数名称

另外,要习惯使用初始值设定项列表。我会把这门课写成:

class SensorData{
  private:
    float temperature;
    float distance;

  public:
  SensorData(float t, float d) : temperature(t), distance(d) {
  }

  float getTemperature() const {
    return temperature;
  }

  float getDistance() const {
    return distance;
  }
}
基本语法错误:

class SensorData{
  private: // following lines are private access
   float temperature;
   float distance;

public: // following lines are public access
  SensorData(float temperature, float distance) {
    this->temperature  =  temperature; // this is a pointer
    this->distance  =  distance;
  }

  float getTemperature() {
    return this->temperature;
  }

  float getDistance() {
    return this->distance;
  }
};  // class declaration ends with semi-colon
尽管在这种特殊情况下不需要使用
。此外,您的构造函数还可以从构造函数初始化列表中受益:

SensorData(float temperature, float distance) 
: temperature(temperature), distance(distance){
}
您的访问方法应该是
const

float getTemperature() const {
  return this->temperature;
}

综上所述,得到一本好的C++书籍。< /P>也可能是那些访问器上的代码>代码>代码>不要忘记初始值设定项列表。我认为一个更紧迫的问题是用分号终止类声明(语句),以免你想让初学者在其他地方追查编译错误。是的,这更像是一个注释而不是答案,但对于那些不知道自己在做什么的人来说,这是一个很好的指导。学究式的——实际上,这是一个阶级定义。一个类声明(或转发声明,同样的事情),就是
类的类名/pedantic
float getTemperature() const {
  return this->temperature;
}