所以我有一个用来描述主方法中的圆的类,如果两个圆相交,我应该看到它。我需要创建两个类的实例,当我这样做时,我无法访问它们的值?带t的行不起作用,因为它说它找不到Big或Lil?
if (r2 >= r1){
MyCircle Big = new MyCircle(x2,y2,r2);
MyCircle Lil = new MyCircle(x1,y1,r1);}
else {
MyCircle Big = new MyCircle(x1,y1,r1);
MyCircle Lil = new MyCircle(x2,y2,r2);
}
t = Lil.getX()-Big.getX();
答案 0 :(得分:1)
你在两个不同的范围内宣布Big和Lil,所以它们不能在外面使用。
试试这个:
MyCircle Big = null;
MyCircle Lil = null;
if (r2>=r1){
Big=new MyCircle(x2,y2,r2);
Lil= new MyCircle(x1,y1,r1);
} else {
Big= new MyCircle(x1,y1,r1);
Lil=new MyCircle(x2,y2,r2);}
}
t=Lil.getX()-Big.getX();
java中的“范围”以“{”开头,以“}”结尾,在这些括号内声明的所有东西都只存在于这些括号内。
此外:
答案 1 :(得分:0)
您应该在Lil
语句之外定义Big
和if
变量,以便在if
/ else
块之外访问它们。当您在if
块(或else
块)中定义它们时,它们仅位于if
/ else
块的范围内。
MyCircle Big = null;
MyCircle Lil = null;
if (...) {
... // create instance of Big and Lil, but don't declare them here
} else (...) {
... // create instance of Big and Lil, but don't declare them here
}
... // access Big and Lil
答案 2 :(得分:0)
这是范围问题。每次使用花括号时,都要定义范围。在该范围内定义的变量仅对该范围可见。作为一般规则:如果想要访问范围之外的变量,则相应地将其排除在外。