欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java靜態(tài)方法和實例方法區(qū)別詳解

 更新時間:2016年12月22日 11:33:55   作者:Java開發(fā)-擱淺  
這篇文章主要為大家詳細介紹了Java靜態(tài)方法和實例方法的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下

靜態(tài)方法和實例方法的區(qū)別主要體現(xiàn)在兩個方面: 

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

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

下面幾個例子展示了這一區(qū)別。

1、調用靜態(tài)方法示例 

//-----------hasStaticMethod.java-----------------
public class hasStaticMethod{
//定義一個靜態(tài)方法
public static void callMe(){
  System.out.println("This is a static method.");
}
}

下面這個程序使用兩種形式來調用靜態(tài)方法。

//-----------invokeStaticMethod.java-----------------
public class invokeStaticMethod{
  public static void main(String args[]){
  hasStaticMethod.callMe(); //不創(chuàng)建對象,直接調用靜態(tài)方法  
  hasStaticMethod oa = new hasStaticMethod();  //創(chuàng)建一個對象
  oa.callMe();   //利用對象來調用靜態(tài)方法
}
} 

程序兩次調用靜態(tài)方法,都是允許的,程序的輸出如下:
This is a static method.This is a static method.  

允許不創(chuàng)建對象而調用靜態(tài)方法,是Java為了減少程序員調用某些常用方法時的麻煩,而允許程序員按照傳統(tǒng)的C語言中使用函數(shù)的方式來使用方法。典型的例子是前面某些程序中使用"Math.ramdon()"來獲取隨機數(shù)。
還有一個很典型的代表就是數(shù)組的處理工具Arrays

2、靜態(tài)方法訪問成員變量示例

//-----------accessMember.java-----------------
class accessMember{
private static int sa; //定義一個靜態(tài)成員變量
private int ia; //定義一個實例成員變量
//下面定義一個靜態(tài)方法
static void statMethod(){
  int i = 0;  //正確,可以有自己的局部變量sa = 10;  
  //正確,靜態(tài)方法可以使用靜態(tài)變量
  otherStat(); 
  //正確,可以調用靜態(tài)方法
  ia = 20;  //錯誤,不能使用實例變量
  insMethod(); //錯誤,不能調用實例方法
}
static void otherStat(){} 
//下面定義一個實例方法 
void insMethod(){
  int i = 0;  //正確,可以有自己的局部變量
  sa = 15;  //正確,可以使用靜態(tài)變量
  ia = 30;  //正確,可以使用實例變量
  statMethod();  //正確,可以調用靜態(tài)方法
}
} 


本例其實可以概括成一句話:靜態(tài)方法只能訪問靜態(tài)成員,實例方法可以訪問靜態(tài)和實例成員。之所以不允許靜態(tài)方法訪問實例成員變量,是因為實例成員變量是屬于某個對象的,而靜態(tài)方法在執(zhí)行時,并不一定存在對象。同樣,因為實例方法可以訪問實例成員變量,如果允許靜態(tài)方法調用實例方法,將間接地允許它使用實例成員變量,所以它也不能調用實例方法?;谕瑯拥牡览?,靜態(tài)方法中也不能使用關鍵字this。 

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java poi設置生成的word的圖片為上下型環(huán)繞以及其位置的實現(xiàn)

    java poi設置生成的word的圖片為上下型環(huán)繞以及其位置的實現(xiàn)

    這篇文章主要介紹了java poi設置生成的word的圖片為上下型環(huán)繞以及其位置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 淺談Spring AOP中args()和argNames的含義

    淺談Spring AOP中args()和argNames的含義

    這篇文章主要介紹了Spring AOP中args()和argNames的含義,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 從零到掌握Spring Boot Validation 接口校驗的詳細過程

    從零到掌握Spring Boot Validation 接口校驗的詳細過程

    本文詳細介紹了SpringBoot的Validation接口校驗機制,包括其核心功能、常用注解、自定義校驗、以及實際應用場景,通過注解定義數(shù)據校驗規(guī)則,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • Java服務端性能優(yōu)化之JVM垃圾回收策略詳解

    Java服務端性能優(yōu)化之JVM垃圾回收策略詳解

    JVM垃圾回收策略涵蓋了基本原理、常見策略(如SerialGC、ParallelGC、CMS、G1GC)以及優(yōu)化建議,選擇合適的策略和調整參數(shù),如堆大小和GC日志,可以提高應用性能和響應速度,持續(xù)監(jiān)控和分析是關鍵步驟
    2025-03-03
  • Java代碼實現(xiàn)對properties文件有序的讀寫的示例

    Java代碼實現(xiàn)對properties文件有序的讀寫的示例

    本篇文章主要介紹了Java代碼實現(xiàn)對properties文件有序的讀寫的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • rabbitmq延遲隊列的使用方式

    rabbitmq延遲隊列的使用方式

    這篇文章主要介紹了rabbitmq延遲隊列的使用方式,使用rabbitmq的延時隊列插件,實現(xiàn)同一個隊列中有多個不同超時時間的消息,并按時間超時順序出隊,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2024-04-04
  • springboot整合cxf發(fā)布webservice以及調用的方法

    springboot整合cxf發(fā)布webservice以及調用的方法

    這篇文章主要介紹了springboot整合cxf發(fā)布webservice以及調用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java中的MessageFormat.format用法實例

    Java中的MessageFormat.format用法實例

    這篇文章主要介紹了Java中的MessageFormat.format用法實例,本文先是講解了MessageFormat的語法,然后給出了多個操作實例,需要的朋友可以參考下
    2015-06-06
  • Java 模擬銀行自助終端系統(tǒng)

    Java 模擬銀行自助終端系統(tǒng)

    本系統(tǒng)模擬銀行用戶使用ATM機開戶、查詢、存款、取款功能,要求使用java語言編程實現(xiàn)。這篇文章主要介紹了Java 模擬銀行自助終端系統(tǒng)的相關資料,需要的朋友可以參考下
    2016-10-10
  • java啟動時自定義配置文件路徑,自定義log4j2.xml位置方式

    java啟動時自定義配置文件路徑,自定義log4j2.xml位置方式

    這篇文章主要介紹了java啟動時自定義配置文件路徑,自定義log4j2.xml位置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論