a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 108|回复: 0

[专业语言] JAVA认证:实例讲解main()中方法的调用

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
public class invokeMethod{   public void showMsg(){% v& d+ {2 ~( {- y$ D: M
  System.out.println("this is showMsg");) @) a% g2 N- O' ?4 d7 _1 z8 {1 |- ?
  }( {1 ~" l+ W5 {0 L% ^4 M
  public void callOther(){
8 p& g" F) }6 Z  showMsg();* m+ T; w- P/ t& c, H. W: u/ c
  }! y. G5 `0 `* Y$ r
  public static void main(String args[]){
5 G) H3 ^1 \/ J0 M: _8 k6 T  invokeMethod ob=new invokeMethod();
6 \5 o6 P1 T$ Y6 L3 m# I  ob.callOther();
: L9 J- g  e+ W9 E5 i% Z- w  }
, @# F$ f+ l. K! A" O$ \  }
, D- n6 t1 k2 e5 L* H/ b  在上例中,体例callOther()和体例showMsg()处在统一个类中,所根柢用后者时直接使用体例名就可以了。; f2 q7 r6 |- `: H1 z7 X
  令人斗劲迷惑的处所是在main()体例中,此处挪用callOther()体例使用了看似斗劲麻烦的法子,先建树一个对象ob,再用对象名.体例的名目来挪用体例,这似乎是画蛇添足
# C! Y; e- T0 _( c% V  现实上这里做是必需的。main()体例是一个静态体例,它由系统来挪用,系统在挪用它的时辰并没有建树一个invokeMethod的对象,而callOther和showMsg体例都是实例体例,他们被挪用时必需有对象存在,所以必需在main()体例中先建树一个对象ob才能挪用这两个体例,年夜这点来看,main()体例虽然在invokeMethod类的内部,但它的默示如同在类的外部一样。/ ~; Y- q6 D  [, c
  这么诠释可能有的同窗还有迷惑,为什么callOther体例又能够直接挪用showMsg(),莫非它能保证在挪用后者时对象已经存在,谜底却是如斯,因为callOther自己是实例体例,它在执行时必然有对象存在,基于这个前提,它才能够直接挪用showMsg体例。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-23 10:15 , Processed in 0.497759 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表