public class JavapTest{
private int a,b;
public static int getMax(int m,int n){
if(m<n) return n;
else return m;
}
public void printMax(int max){
System.out.println("Max is:"+max);
}
public static void main(String[] args) {
JavapTest jObj = new JavapTest();
jObj.a = 10; //这里到底应该怎么解释...?
jObj.b = 20;
jObj.printMax(getMax(jObj.a,jObj.b));
}
}
private int a,b;
public static int getMax(int m,int n){
if(m<n) return n;
else return m;
}
public void printMax(int max){
System.out.println("Max is:"+max);
}
public static void main(String[] args) {
JavapTest jObj = new JavapTest();
jObj.a = 10; //这里到底应该怎么解释...?
jObj.b = 20;
jObj.printMax(getMax(jObj.a,jObj.b));
}
}
解决方案 »
- 虽然==与equals的问题很老了,我还是忍不住来发个帖提问
- 怎么将jframe从后台运行转为前台
- 用jsp如何将文件压缩/释放,小弟急啊......
- 我的这个返回时间构造方法,返回的类形是什么啊????
- 如果提交多条SQL语句
- 急,有个小问题: jdk1.3 需要加那些包,才能对xml编程?
- 使用ClassLoader.getSystemResourceAsStream遇到的问题
- 在这个单位干两年了,现在要走了,散分!
- 请问为何在别的机器上浏览不了打包的appelt?
- 如何用JDBC来查询数据库中日期最近的一行数据
- 怎么用java语言判断登录邮箱成功啊
- 不同Action之间调用方法,为什么报错?
加入在JavapTest外再访问就不行了
因为jObj.a = 10;在JavapTest类的内部。
因为 jObj.a = 10; 在JavapTest类的内部。
jObj.b = 20;
这两行编译时通不过的,原因:
静态方法中引用非静态变量如果将
private int a,b;
改为:
private static int a,b;
就可以了。至于:
jObj.a = 10; //这里到底应该怎么解释...?3楼已经回答过了。
private对外是不可见的,但是对内还是可见的,是可以用的,也可以不要jObj,直接写
a=10;
b=20;但注意前提:a,b 必须是静态变量。
7楼的:关于在静态方法中不允许访问非静态的域和方法(要明白什么时候有这样的约束),这道题已经有了JavapTest jObj = new JavapTest();自然可以访问非静态的方法。9楼的:同样犯了这样的错误12楼的:this不可以这样用在静态方法的内部
对于楼主问题的答案就是,本类成员可以访问本类的私有变量.