java实例方法和静态方法,类的静态方法和实例方法有何区别

  java实例方法和静态方法,类的静态方法和实例方法有何区别

  静态方法和实例方法的区别主要体现在两个方面:

  在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

  静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

  以下示例显示了这种差异。

  1.调用静态方法实例。

  公共类hasStaticMethod{

  //定义静态方法

  公共静态void callMe(){

  System.out.println(这是静态方法。);

  }

  }下面的程序使用两种形式调用静态方法。

  公共类invokeStaticMethod{

  公共静态void main(String args[]){

  hasstaticmethod . call me();//不创建对象,直接调用静态方法

  hasStaticMethod OA=new hasStaticMethod();//创建一个对象

  OA . call me();//使用对象调用静态方法

  }

  }程序调用静态方法两次,两次都允许。该程序的输出如下:

  这是一个静态方法。这是一个静态方法。允许在不创建对象的情况下调用静态方法。Java为了减少程序员调用一些常用方法的麻烦,允许程序员按照C语言使用函数的传统方式来使用方法。

  2.访问成员变量的静态方法示例

  类访问成员{

  私有静态int sa//定义静态成员变量

  private int ia//定义实例成员变量

  //在下面定义一个静态方法

  静态void statMethod(){

  int I=0;//正确,可以有自己的局部变量sa=10

  //正确,静态方法可以使用静态变量

  other stat();

  //正确,可以调用静态方法

  ia=20//错误,不能使用实例变量。

  ins method();//错误,无法调用实例方法。

  }

  静态void otherStat(){}

  //定义下面的示例方法

  void in method(){

  int I=0;//正确,可以有自己的局部变量

  sa=15//正确,可以使用静态变量

  ia=30//正确,可以使用实例变量

  stat method();//正确,可以调用静态方法

  }

  }这个例子其实可以用一句话概括:静态方法只能访问静态成员,而实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量属于一个对象,执行静态方法的时候,不一定有对象。

  同样,因为实例方法可以访问实例成员变量,所以如果允许静态方法调用实例方法,就会间接允许它们使用实例成员变量,所以它不能调用实例方法。同样,关键字this不能用在静态方法中。

  main()方法是典型的静态方法。它也遵循一般静态方法的规则,因此可以在创建对象之前由系统调用。

  推荐教程:java教程以上是Java中静态方法和实例方法区别的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: