【Java基础】几种简单的调用关系与方法

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

【java基础】几种简单的调用关系与方法 直接上代码吧。

1 class lesson4AB 2 //同一个类下的public修饰的方法A,B可以相互调用 3 { 4 public void A() 5 { 6 B();//等价于this.B(); 7 } 8 public void B() 9 {10 A();//等价于this.A();11 }12 }13 class lesson4C14 //存在于不同类里的public修饰的方法C调用B15 {16 public void C()17 {18 lesson4AB lAB=new lesson4AB();19 lAB.B();20 //上下两种方法是等价的,都可以调用21 new lesson4AB().B();22 }23 }24 class lesson4DE25 //同一个类中的static方法与非静态方法相互调用。26 {27 public static void D()//用static修饰,属于类成员28 {29 //E();//错误: 无法从静态上下文中引用非静态 方法 E()30 //【通俗说是静态不引用非静态】31 32 //this.E();//错误: 无法从静态上下文中引用非静态 变量 this33 //【通俗说就是static和this不能共存】34 35 new lesson4DE().E();//通过36 //public void E()没用static修饰,属于对象,只能用对象来调用37 }38 public void E()//没用static修饰,属于对象39 {40 D();//等价于this.D();41 //对象可以调用类成员42 }43 }44 class lesson4 45 {46 public static void main(String[] args) 47 {48 System.out.PRintln("May you happy!");49 }50 }

对于上述代码第35行的详细解释:

类方法不能调用非类方法,所以直接调用E()是错误的。但可以通过对象来调用,所以要new出来一个对象来调用它(非静态方法)。

网上有一段这样的话,总结的挺好:

类是一个抽象的概念,对象是一个实体。静态方法只能在内存中分配一个空间,不管多少次引用都指向那个空间,即常驻内存,是类对象,不是单个实例。而非静态方法是随对象产生的,每生成一个对象就新生成一个非静态方法,而且分配不同的空间。所以非静态成员必须依赖于对象。 (2014.10.31修改添加)

本人小菜鸟一枚,以上为网上自学心得总结,如有错误敬请指出。新手童鞋多多交流,大神们多多指点。祝大家生活愉快。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航