日期:2014-05-20  浏览次数:20668 次

在class Circle{}中哪个变量是局部哪个是全局?
class Point {
private double x;
private double y;
  Point (double x1,double y1){
  x=x1;
  y=y1;
  }
  public double getX(){return x;}
  public double getY(){return y;}
  public void setX(double i){x=i;}
  public void setY(double i){y=i;}
}
class Circle{
private Point o;
private double radius;
Circle(Point p,double r){
o=p ;
radius=r;
}
Circle(double r ){
o= new Point(0.0, 0.0) ;
radius=r;
}
boolean contains (Point p){
double x=p.getX()-o.getX();
double y=p.getY()-o.getY();
if(x*x+y*y>radius*radius)return false;
else return true;
}
public void setO(double x,double y){
  o.setX(x);
  o.setY(y);
}
public Point getO(){
return o;
}
public double getRadius(){return radius;}
public void setRadius(double r){r=radius;}
public double area(){return 3.14*radius*radius;
}
}
public class TestCircle{
public static void main(String [] args ){
Circle c1=new Circle(new Point(1.0,2.0), 2.0);
Circle c2=new Circle(5.0);
System.out.println("c1:("+c1.getO().getX()+","+c1.getO().getY()+")"+c1.getRadius());
System.out.println("c2:("+c2.getO().getX()+","+c2.getO().getY()+")"+c2.getRadius());
System.out.println("c1 area:"+c1.area());
System.out.println("c1 area:"+c1.area());
c1.setO(5,6);
c2.setRadius(9.0);
System.out.println("c1:("+c1.getO().getX()+","
  +c1.getO().getY()+"),"+c1.getRadius());
  System.out.println("c2:("+c2.getO().getX()+","
  +c2.getO().getY()+"),"+c2.getRadius());
  System.out.println("c1 area = "+c1.area());
  System.out.println("c1 area = "+c2.area());
  Point p1=new Point(5.2, 6.3);
  System.out.println(c1.contains(p1));
  System.out.println(c2.contains(new Point(10.0,9.0)));
}

}

------解决方案--------------------
方法外面是全局
方法内部是局部
------解决方案--------------------
方法外面声明的是全局 
方法内部声明的是局部
------解决方案--------------------
方法外面声明的是全局变量
方法内部声明的是局部变量

private Point o; 
private double radius; 

这两个是全局变量
------解决方案--------------------
非类成员变量都是局部
所谓全局是对类范围而言