当前位置: 技术问答>java相关
静态方法中无法引用一个实例变量,我怎么老是遇到这种问题?
来源: 互联网 发布时间:2017-04-30
本文导语: 静态方法中无法引用一个实例变量,我怎么老是遇到这种问题? | private clientAgent ca =null; public static void main(String[] args) { javaClient frame=new javaClient(); fr...
静态方法中无法引用一个实例变量,我怎么老是遇到这种问题?
|
private clientAgent ca =null;
public static void main(String[] args)
{
javaClient frame=new javaClient();
frame.pack();//注意javaClient是JFrame的派生类,调用基类方法
frame.setVisible(true);
clientAgent ca =new clientAgent("127.0.0.1",1001); //传递服务器名称和端口号
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==sendButton) //判断事件源控件是否是"发送"按钮
{
ca.sendRequest(inputField.getText()); //发送文本框中的文本
outputAera.append("n"+ca.getResponse()); //接收服务器回应并写入文本域
}
}
这时候就要注意了
public static void main(String[] args)
{
javaClient frame=new javaClient();
frame.pack();//注意javaClient是JFrame的派生类,调用基类方法
frame.setVisible(true);
clientAgent ca =new clientAgent("127.0.0.1",1001); //传递服务器名称和端口号
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==sendButton) //判断事件源控件是否是"发送"按钮
{
ca.sendRequest(inputField.getText()); //发送文本框中的文本
outputAera.append("n"+ca.getResponse()); //接收服务器回应并写入文本域
}
}
这时候就要注意了
|
静态类是用来描述某一类所有对象的信息。换句话说就是不必建立实体便可以使用静态数据,静态数据的内存是分配在全局共有的区段,所有类的实体都可以存取之。
静态数据设定为private,静态方法设定为public是一个封装静态数据的好办法。静态方法在编译(Compiler)被当作全局函数。静态成员的生命周期就是限定在应用程序的生命周期之中。静态方法不能使用this保留字。This是指向对象本身的指针。换句话说就是静态方法只能存取静态数据和其他的静态方法。
静态数据设定为private,静态方法设定为public是一个封装静态数据的好办法。静态方法在编译(Compiler)被当作全局函数。静态成员的生命周期就是限定在应用程序的生命周期之中。静态方法不能使用this保留字。This是指向对象本身的指针。换句话说就是静态方法只能存取静态数据和其他的静态方法。
|
想做什么?
是不是main函数里面调用main所在类的变量:)
在main里面new一下,再引用。一般小段程序的测试我是采用这用方法的。
是不是main函数里面调用main所在类的变量:)
在main里面new一下,再引用。一般小段程序的测试我是采用这用方法的。
|
clientAgent ca =new clientAgent("127.0.0.1",1001);
private clientAgent ca =null;
呵呵,这两个变量可不是指向同一个实例哦
private static clientAgent ca =null;
private clientAgent ca =null;
呵呵,这两个变量可不是指向同一个实例哦
private static clientAgent ca =null;
|
静态方法引用的外部变量也只能是静态的.
|
两句话概括你的问题:
1、非静态方法不用new也可以直接直接访问静态或非静态成员。
2、静态方法如static void main,必须new一个对象,才能访问非静态成员,而如果你要访问的成员是静态的,调用的方法中new不new也能访问它。
这是语法,不要问为什么。根据我这两句话,你所有问题都会解决~~
1、非静态方法不用new也可以直接直接访问静态或非静态成员。
2、静态方法如static void main,必须new一个对象,才能访问非静态成员,而如果你要访问的成员是静态的,调用的方法中new不new也能访问它。
这是语法,不要问为什么。根据我这两句话,你所有问题都会解决~~