class Demo8_Demoo {
public static void main(String[] args) {
print2();
}
public static void print2() { //静态成员方法
Demoo ddd = new Demoo();
//ddd.num1 = 200;
System.out.println(ddd.num1);//输出非静态成员方法 //为什么this不能用,但是ddd可以用?
}
}
class Demoo {
int num1 = 10; //非静态成员变量
}
mingyeing 发表于 2016-8-1 22:56
我们说的在静态方法中不能调用非静态的成员变量和成员方法,其实说的是在方法中,不能直接调用本类的成员变 ...
mingyeing 发表于 2016-8-1 22:56
我们说的在静态方法中不能调用非静态的成员变量和成员方法,其实说的是在方法中,不能直接调用本类的成员变 ...
yuxing 发表于 2016-8-1 23:10
静态中当然不能用this,this代表对象的引用,而静态的是先于对象的~~
jingyarufeng 发表于 2016-8-1 23:13
那我要是先创建一个对象,再调用静态方法呢.
jingyarufeng 发表于 2016-8-1 23:00
但是,我这样写不也成了静态方法调用了静态变量么...
mingyeing 发表于 2016-8-1 23:27
静态方法不能访问非静态成员,是值在方法中调用本类的非静态成员是不可以的。另外,我那个关于内存的解释 ...
mingyeing 发表于 2016-8-1 22:56
我们说的在静态方法中不能调用非静态的成员变量和成员方法,其实说的是在方法中,不能直接调用本类的成员变 ...
mingyeing 发表于 2016-8-1 22:56
我们说的在静态方法中不能调用非静态的成员变量和成员方法,其实说的是在方法中,不能直接调用本类的成员变 ...
class Demo8_Demoo {
static int num1 = 12;
public static void main(String[] args) {
//static int num1 = 12;
print2();
}
//static int num1 = 12;
public static void print2() {
//静态成员方法
//Demoo ddd = new Demoo();
//ddd.num1 = 200;
Demo8_Demoo dddd = new Demo8_Demoo();
System.out.println(dddd.num1); //这里还是不能用this,为啥?
}
}
jingyarufeng 发表于 2016-8-2 00:27
[mw_shl_code=java,true]class Demo8_Demoo {
static int num1 = 12;
public static void main(String[ ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |