刚从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关键字到底是干什么的啊?
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关键字到底是干什么的啊?
解决方案 »
- 变量初始值的问题
- 同样的命令在命令行里好使 但是在Runtime.getRuntime().exec(cmd);中执行无效果?
- 一道面试题:同步方法与同步代码块的区别
- 用ant运行单元测试报错:java.lang.NoSuchMethodError: org.apache.tools.ant.types.resources.R
- 不知道这个理解对不对
- 1+11+111+1111+.....用迭代算法怎么做
- Jcreator和jdk如何配置?
- ObjectInputStream的问题。
- 关于布局管理器的问题
- 正则表达式问题(JAVASE)
- swing实现划词功能
- 怎样在Java程序或socket或者rmi里去执行某个Servlet?
2.SimpleCircle a;
a.radius = 2.0;
除了声明的时候可以赋值,例如int a = 10;
其他的都必须放在某个方法里,例如构造方法。
默认的不是private,这个变量访问控制类型是default
在同一个包内的其他类都能够访问到