2014-11-06 121 views
1
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; 
+0

当你认为正在执行的'if'is? – 2014-11-06 14:07:20

回答

0

如果您试图从不在同一个包中的类访问,则需要声明变量为“public”。

+0

技术上正确,但这是对新手的反建议 - 在实际代码中永远不应该有公共类变量! – 2014-11-06 14:07:28

0

我猜你的问题是你正试图从一类是在另一个包访问该属性,就应该声明atrributes为公众获得对它们的访问。但是这种解决方案并不完全正确,一种更好的方法是将它们声明为私有,并创建公共getter和setter来访问/修改它们。

说,你应该张贴工作的例子,那件代码不编译,因为你试图执行代码,任何阶级的......,我不知道你正在尝试用做在if条款之前的花括号。

+0

你能给我你的电子邮件吗?我想通过电子邮件向您发送这封信,我需要帮助,因为它无法正常工作。 – Dillon 2014-11-07 13:55:16

+0

你可以问这里,SO是提问的地方 – 2014-11-07 14:01:20

0

当你关心一个类时,每个成员都有一个控制权限。

当你不喜欢状态的控制访问:

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

这是错误的,有一个默认访问是非私人的,受保护的或公共的。实际上离保护区非常近。 – 2014-11-06 14:15:30

+0

是什么?默认为会员私密! – 2014-11-06 14:16:14

+0

不,有一个包私有级别,成员可以在同一个包中访问,但不能用于子类:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – 2014-11-06 14:19:58

0

首先,你不能访问子类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在不同的包中看到它。如果你让它公开课并导入数学,你可以使用它,否则你应该为你的椭圆做随机的方法。

相关问题