问一个比较菜的问题,有点晕...
刚从C++转到Java没几天,遇到一个比较菜的问题,不想再浪费时间翻书了,就想请教各位大侠:
MyEclipse 7.5环境下,建立一个工程TestSimpleCircle,里面只有一个类文件TestSimpleCircle.java,代码如下:
public class TestSimpleCircle {
public static void main(String[] args){
SimpleCircle myCircle = new SimpleCircle(5.0);
System.out.println("The area of the circle of radius " + myCircle.radius + " is " + myCircle.findArea());
SimpleCircle yourCircle = new SimpleCircle();
System.out.println(" The area of the circle of radius " + yourCircle.radius + " is " + yourCircle.findArea());
yourCircle.radius = 100;//为何外部函数可以给对象的私有变量radius赋值?难道是主函数main可以?
System.out.println("The area of the circle of radius " + yourCircle.radius + " is " + yourCircle.findArea());
}
}
class SimpleCircle{
double radius; // 此变量访问控制类型应该是默认的private
SimpleCircle(){
radius = 1.0;
}
SimpleCircle(double newRadius){
radius = newRadius;
}
double findArea(){
return radius * radius * Math.PI ;
}
}
以上程序Build,没有问题。
疑问:
是否真的main函数有什么特权,可以访问类对象的私有变量,于是想测试一下,中类文件TestSimpleCircle.java中,再写一个类Test:
// ...前面代码同上
class Test{
SimpleCircle a;
a.radius = 2.0;
SimpleCircle b = new SimpleCircle();
b.radius = 2.0;
}
奇怪了,这四行代码都有错误。系统提示说:Syntax error on token "radius",varableDeclactorID expected after this token.
怎么回事啊?请各位高手指点一二。
另外,Java里面的Static关键字到底是干什么的啊?