语法错误“x”,VariableDeclaratorld此后预期
class anyName
{
int Tcol = 0;
int fc = 0;
int x = 0;
float randx = (random(1, 1000));
float randy = (random (0, 600));
int Tsizes = 1;
{
if (fc >= x) { //Random Ellipse 3
stroke (Tcol);
fill (Tcol);
ellipse (randx, randy, Tsizes, Tsizes);
}
}
}
anyName ranx1 = new anyName();
ranx1.x = 100;
嗨,我想添加一个类/对象到我的代码,它不工作。这是我迄今为止的类,但是当我从该类实例化一个对象(ranx1),然后尝试更改其中的一个变量(x)时,它说有错误。有什么我需要改变?我真的很感激任何帮助。语法错误“x”,VariableDeclaratorld此后预期
由于我从该类实例化一个对象,我将如何更改新对象的变量?例如,如果在类x = 0中,然后我做了一个副本,这次我要x = 100,但所有其他变量(如Tcol和fc)保持不变。我知道这是可能的,因为我的老师教了这个,但现在对我来说还不行。
ranx1.x = 100;
如果您试图从不在同一个包中的类访问,则需要声明变量为“public”。
技术上正确,但这是对新手的反建议 - 在实际代码中永远不应该有公共类变量! – 2014-11-06 14:07:28
我猜你的问题是你正试图从一类是在另一个包访问该属性,就应该声明atrributes为公众获得对它们的访问。但是这种解决方案并不完全正确,一种更好的方法是将它们声明为私有,并创建公共getter和setter来访问/修改它们。
说,你应该张贴工作的例子,那件代码不编译,因为你试图执行代码,任何阶级的......,我不知道你正在尝试用做在if
条款之前的花括号。
你能给我你的电子邮件吗?我想通过电子邮件向您发送这封信,我需要帮助,因为它无法正常工作。 – Dillon 2014-11-07 13:55:16
你可以问这里,SO是提问的地方 – 2014-11-07 14:01:20
当你关心一个类时,每个成员都有一个控制权限。
当你不喜欢状态的控制访问:
public x;
protected fc;
private Tcol;
他们都得到默认专用。
您无法从课外访问私人会员。
做:
class anyName
{
public int Tcol = 0;
public int fc = 0;
public int x = 0;
public float randx = (random(1, 1000));
public float randy = (random (0, 600));
public int Tsizes = 1;
{
if (fc >= x) { //Random Ellipse 3
stroke (Tcol);
fill (Tcol);
ellipse (randx, randy, Tsizes, Tsizes);
}
}
}
谁,我必须指出的是,它不建议设置成员访问公共大部分时间,你应该了解的getter和setter方法。
现在我希望你的代码的其余部分是在主函数和一个主类,但如果没有它应该像这样:
public class Main
{
public static void main(String[]args){
anyName ranx1 = new anyName();
ranx1.x = 100;
}
}
这是错误的,有一个默认访问是非私人的,受保护的或公共的。实际上离保护区非常近。 – 2014-11-06 14:15:30
是什么?默认为会员私密! – 2014-11-06 14:16:14
不,有一个包私有级别,成员可以在同一个包中访问,但不能用于子类:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – 2014-11-06 14:19:58
首先,你不能访问子类veriables像。如果你想访问你应该让这个
public class ExampleApp {
class anyName
{
int x = 0;
}
public static void main(String[]args){
ExampleApp ea = new ExampleApp();
ExampleApp.anyName ranx1= ea.new anyName();
ranx1.x =100;
}
}
或者你可以使用它们的类内与方法
public void method() {
anyName ea = new anyName();
ea.x=100;
}
,如果你想,如果你访问them.Secondly你不能使用你的veriables私人想要使用这个库,你不能使用innerclass。在innerclass内部,你不能访问库,因为java在不同的包中看到它。如果你让它公开课并导入数学,你可以使用它,否则你应该为你的椭圆做随机的方法。
当你认为正在执行的'if'is? – 2014-11-06 14:07:20