中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的注解

發布時間:2020-06-10 15:02:22 來源:億速云 閱讀:359 作者:元一 欄目:編程語言

Java

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。


在學習Java基礎語法的時候,初學者常常會分不清注解與注釋的區別。其實注解和注釋是完全不一樣的兩個概念。簡單來講,注釋就是方便自己或他人閱讀代碼,對編程思路或程序作用的解釋說明。而注解則是代碼里的特殊標記,是給編譯器閱讀的元數據。本文將為大家詳細講解一下Java基礎語法中有關注解的相關知識點,需要學習的小伙伴可以跟著文章一起來梳理一遍知識點。
  

Java中的注解

 

1、注解的概念
  

可以看作是對 一個 類/方法 的一個擴展的模版,每個 類/方法 按照注解類中的規則,來為 類/方法 注解不同的參數,在用到的地方可以得到不同的 類/方法 中注解的各種參數與值

注解也就是Annotation,相信不少人也和我之前一樣以為和注釋和doc一樣,是一段輔助性的文字,其實注解不是這樣的。

從JDK5開始,java增加了對元數據(描述數據屬性的信息)的支持。其實說白就是代碼里的特殊標志,這些標志可以在編譯,類加載,運行時被讀取,并執行相應的處理,以便于其他工具補充信息或者進行部署。

  

2、注解的作用分類
  

(1)編寫文檔:通過代碼里標識的注解生成文檔【生成文檔doc文檔】
  

(2)代碼分析:通過代碼里標識的注解對代碼進行分析【使用反射】
  

(3)編譯檢查:通過代碼里標識的注解讓編譯器能夠實現基本的編譯檢查【Override】
  

3、JDK中預定義的一些注解
  

(1)@Override:檢測被該注解標注的方法是否是繼承自父類(接口)的
  

(2)@Deprecated:該注解標注的內容,表示已過時
  

(3)@SuppressWarnings:壓制警告
  

(4)一般傳遞參數all @SuppressWarnings("all")
  

4、自定義注解
  

(1)格式:
  

元注解
  

public @interface 注解名稱{

     

      屬性列表;
  

}
  

(2)本質:注解本質上就是一個接口,該接口默認繼承Annotation接口
  

public interface MyAnno extends java.lang.annotation.Annotation {}
  

(3)屬性:接口中的抽象方法
  

(4)要求:

 

a、屬性的返回值類型有下列取值
  

基本數據類型
  

String
  

枚舉
  

注解
  

以上類型的數組
  

b、定義了屬性,在使用時需要給屬性賦值。如果定義屬性時,使用default關鍵字給屬性默認初始化值,則使用注解時,可以不進行屬性的賦值。如果只有一個屬性需要賦值,并且屬性的名稱是value,則value可以省略,直接定義值即可。數組賦值時,值使用{}包裹。如果數組中只有一個值,則{}可以省略
  

5、元注解:用于描述注解的注解。
  

@Target:描述注解能夠作用的位置
  

ElementType取值:
  

TYPE:可以作用于類上
  

METHOD:可以作用于方法上
  

FIELD:可以作用于成員變量上
  

@Retention:描述注解被保留的階段
  

@Retention(RetentionPolicy.RUNTIME):當前被描述的注解,會保留到class字節碼文件中,并被JVM讀取到
  

@Documented:描述注解是否被抽取到api文檔中
  

@Inherited:描述注解是否被子類繼承
  

6、在程序使用(解析)注解:獲取注解中定義的屬性值
  

(1)獲取注解定義的位置的對象 (Class,Method,Field)
  

(2)獲取指定的注解
  

getAnnotation(Class)
  

//其實就是在內存中生成了一個該注解接口的子類實現對象
  

public class ProImpl implements Pro{
  

public String className(){
  

return "cn.itcast.annotation.Demo1";
  

}
  

public String methodName(){
  

return "show";
  

}
  

}
  

(3)調用注解中的抽象方法獲取配置的屬性值。

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖南省| 岱山县| 昌黎县| 隆昌县| 大理市| 吉木乃县| 本溪| 大新县| 南召县| 林口县| 古浪县| 攀枝花市| 禄劝| 泉州市| 遵义县| 乐业县| 宝兴县| 揭西县| 阳泉市| 宁陵县| 繁昌县| 新龙县| 榕江县| 洛川县| 如皋市| 仁寿县| 米林县| 凤庆县| 龙门县| 周口市| 临泉县| 凤阳县| 通榆县| 璧山县| 梁山县| 江源县| 门头沟区| 页游| 保定市| 米易县| 二连浩特市|