您的位置:首页 > 编程语言 > Java开发

java静态方法中调用非静态方法的实现

2011-10-08 00:02 465 查看
java编程思想第四版中文版86页作者提到的,静态方法内部不能调用非静态方法,这不是绝对的,我们可以传递一个对象的引用到静态方法里,

通过这个引用就可以调用非静态的方法和数据成员了。

package com.jldx.test;

public class StaticInvokeNonStaticMethod {

private String name;

public StaticInvokeNonStaticMethod(String name) {

this.name = name;

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

StaticInvokeNonStaticMethod s = new StaticInvokeNonStaticMethod("zhangsan");

StaticInvokeNonStaticMethod s2 = new StaticInvokeNonStaticMethod("wangwu");

s.ask(s);

s.ask(s2);

}

public static void ask(StaticInvokeNonStaticMethod s) {

System.out.println("静态方法内部调用非静态方法");

s.say();

}

public void say() {

System.out.println("hello my name is " + name);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: