您的位置:首页 > 其它

关于类方法里不能调用实例方法/成员变量(即静态方法里不能调用非静态方法和成员变量)的论述

2019-02-26 12:53 363 查看

关于类方法里不能调用实例方法/成员变量的论述

参考《疯狂Java讲义》
作者看《疯狂Java讲义》时写下此文,许多文字都是书中原话

  1. 首先要明白无论调用成员变量还是方法,都需要主调(主语调用者),其格式为:主调.方法/成员变量
  2. 别看我们平时可以直接使用方法名/变量名,其实他们都有默认的前缀。如果是static修饰的,默认类名为前缀,没有static修饰的话,默认this为前缀。
  3. 记住一句话:谁调用这个方法,this就代表谁
  4. 接下来进入正题。标题的情况中,类方法属于类本身而不是类的对象,在类方法里面调用实例方法/变量,那么this就代表这个类本身,当然就找不到所想调用的实例方法或变量了,因为它们在类的对象里面。
  5. 如果你想在类方法里面调用实例方法/变量的话,有一种方法是先创建一个对象,将对象名作为主调:
public class StaticAccessNonStatic
{
public void info()
{
System.out.println("简单的info方法");
}
public static void main(String[] args)
{
StaticAccessNonStatic vair=new StaticAccessNonStatic();
vair.info();
}
}

错误的调用方式:

public class StaticAccessNonStatic
{
public void info()
{
System.out.println("简单的info方法");
}
public static void main(String[] args)
{
info();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐