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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。