&引用;“封闭式”;处理/Java时出错
下面的处理/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
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;
}