日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 静态方法 实例方法的区别_java 静态方法和实例方法的区别

發布時間:2024/10/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 静态方法 实例方法的区别_java 静态方法和实例方法的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

靜態方法和實例方法的區別主要體現在兩個方面:

在外部調用靜態方法時,可以使用"類名.方法名"的方式,也可以使用"對象名.方法名"的方式。而實例方法只有后面這種方式。也就是說,調用靜態方法可以無需創建對象。

靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變量和靜態方法),而不允許訪問實例成員變量和實例方法;實例方法則無此限制。

下面幾個例子展示了這一區別。

1、調用靜態方法示例。

//-----------hasStaticMethod.java-----------------

public class hasStaticMethod{

//定義一個靜態方法

public static void callMe(){

System.out.println("This is a static method.");

}

}

下面這個程序使用兩種形式來調用靜態方法。

//-----------invokeStaticMethod.java-----------------

public class invokeStaticMethod{

public static void main(String args[]){

hasStaticMethod.callMe();? //不創建對象,直接調用靜態方法

hasStaticMethod oa = new hasStaticMethod();?? //創建一個對象

oa.callMe();????? //利用對象來調用靜態方法

}

}

程序兩次調用靜態方法,都是允許的,程序的輸出如下:

This is a static method.This is a static method.

允許不創建對象而調用靜態方法,是Java為了減少程序員調用某些常用方法時的麻煩,而允許程序員按照傳統的C語言中使用函數的方式來使用方法。典型的例子是前面某些程序中使用"Math.ramdon()"來獲取隨機數。

還有一個很典型的代表就是數組的處理工具Arrays

2、靜態方法訪問成員變量示例。

//-----------accessMember.java-----------------

class accessMember{

private static int sa; //定義一個靜態成員變量

private?int ia;? //定義一個實例成員變量

//下面定義一個靜態方法

static void statMethod(){

int i = 0;??? //正確,可以有自己的局部變量sa = 10;

//正確,靜態方法可以使用靜態變量

otherStat();

//正確,可以調用靜態方法

ia = 20;?? //錯誤,不能使用實例變量

insMethod();? //錯誤,不能調用實例方法

}

static void otherStat(){}

//下面定義一個實例方法

void? insMethod(){

int i = 0;??? //正確,可以有自己的局部變量

sa = 15;??? //正確,可以使用靜態變量

ia = 30;??? //正確,可以使用實例變量

statMethod();?? //正確,可以調用靜態方法

}

}

本例其實可以概括成一句話:靜態方法只能訪問靜態成員,實例方法可以訪問靜態和實例成員。之所以不允許靜態方法訪問實例成員變量,是因為實例成員變量是屬于某個對象的,而靜態方法在執行時,并不一定存在對象。同樣,因為實例方法可以訪問實例成員變量,如果允許靜態方法調用實例方法,將間接地允許它使用實例成員變量,所以它也不能調用實例方法。基于同樣的道理,靜態方法中也不能使用關鍵字this。

main()方法是一個典型的靜態方法,它同樣遵循一般靜態方法的規則,所以它可以由系統在創建對象之前就調用。

總結

以上是生活随笔為你收集整理的java 静态方法 实例方法的区别_java 静态方法和实例方法的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。