java中静态方法能不能直接调用非静态方法?
static方法内部不能直接调用非静态方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();classNamecn=newclassName();cn.method();这样就可以了。
java中无法在静态方法中访问非静态变量(或方法)的问题?
<br>你的main方法是static的(这个永远都不可能改变),而java规定,static方法是没办法引用非static的变量或者方法的,所以,你在main方法中,既不能访问你先定义好的变量,就象JTextField ip1,ip2,ip3,ip4; 即使你先定义了你还是得在main方法中定义;你也没办法调用非static方法,就像if(checkip()==0) ,这里就提示你出错。<br>解决的方法两种,一是把变量、方法都声明为static的(不建议,浪费内存空间),另一种方法是,采用面向对象技术,声明一个对象,<br>test t=new test();<br>然后在t中调用test()的方法和成员变量,这样就不会提示错误了。lz看来是还没理解java的思想。而且初始化完全可以在一个构造方法中来做。
还没有评论,来说两句吧...