2 jesuskryst JesusKryst 于 2016.04.13 16:52 提问

为什么在构造方法中无法操作此类的静态成员

这是代码的一部分
public static String Txt;
public ChatView(){
setLayout(null);
Send.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//实现发送
// String str=InputArea.getText(); 可以赋给str
// Txt=str; 无法赋给Txt
Txt = InputArea.getText(); //无法赋给Txt
InputArea.setText("");
}
});

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.13 17:29

这是java的语法规定的啊,因为静态方法是类的属性,只能通过类名来访问,而不需要通过对象啊。
构造函数是创建对象时调用的,是类的非静态方法,是不能访问静态成员的。

wojiushiwo945you
wojiushiwo945you 回复JesusKryst: 编译器只会给出警告,还是可以通过编译的。
一年多之前 回复
JesusKryst
JesusKryst 我记得可以啊。而且编译器也没报错啊
一年多之前 回复
q411692787
q411692787   2016.04.13 18:13

应该可以的啊!静态成员还没实例化就已经存在内存中了,而非静态的要实例化才会存在的。

所以静态方法不能调用非静态成员,但非静态方法是可以调用静态成员的。

JesusKryst
JesusKryst 所以我很郁闷啊。不知道什么原因
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!