Java
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到亞?wèn)|網(wǎng)站設(shè)計(jì)與亞?wèn)|網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋亞?wèn)|地區(qū)。Java是一門面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
在學(xué)習(xí)Java基礎(chǔ)語(yǔ)法的時(shí)候,初學(xué)者常常會(huì)分不清注解與注釋的區(qū)別。其實(shí)注解和注釋是完全不一樣的兩個(gè)概念。簡(jiǎn)單來(lái)講,注釋就是方便自己或他人閱讀代碼,對(duì)編程思路或程序作用的解釋說(shuō)明。而注解則是代碼里的特殊標(biāo)記,是給編譯器閱讀的元數(shù)據(jù)。本文將為大家詳細(xì)講解一下Java基礎(chǔ)語(yǔ)法中有關(guān)注解的相關(guān)知識(shí)點(diǎn),需要學(xué)習(xí)的小伙伴可以跟著文章一起來(lái)梳理一遍知識(shí)點(diǎn)。
1、注解的概念
2、注解的作用分類
(1)編寫文檔:通過(guò)代碼里標(biāo)識(shí)的注解生成文檔【生成文檔doc文檔】
(2)代碼分析:通過(guò)代碼里標(biāo)識(shí)的注解對(duì)代碼進(jìn)行分析【使用反射】
(3)編譯檢查:通過(guò)代碼里標(biāo)識(shí)的注解讓編譯器能夠?qū)崿F(xiàn)基本的編譯檢查【Override】
3、JDK中預(yù)定義的一些注解
(1)@Override:檢測(cè)被該注解標(biāo)注的方法是否是繼承自父類(接口)的
(2)@Deprecated:該注解標(biāo)注的內(nèi)容,表示已過(guò)時(shí)
(3)@SuppressWarnings:壓制警告
(4)一般傳遞參數(shù)all @SuppressWarnings("all")
4、自定義注解
(1)格式:
元注解
public @interface 注解名稱{
屬性列表;
}
(2)本質(zhì):注解本質(zhì)上就是一個(gè)接口,該接口默認(rèn)繼承Annotation接口
public interface MyAnno extends java.lang.annotation.Annotation {}
(3)屬性:接口中的抽象方法
(4)要求:
a、屬性的返回值類型有下列取值
基本數(shù)據(jù)類型
String
枚舉
注解
以上類型的數(shù)組
b、定義了屬性,在使用時(shí)需要給屬性賦值。如果定義屬性時(shí),使用default關(guān)鍵字給屬性默認(rèn)初始化值,則使用注解時(shí),可以不進(jìn)行屬性的賦值。如果只有一個(gè)屬性需要賦值,并且屬性的名稱是value,則value可以省略,直接定義值即可。數(shù)組賦值時(shí),值使用{}包裹。如果數(shù)組中只有一個(gè)值,則{}可以省略
5、元注解:用于描述注解的注解。
@Target:描述注解能夠作用的位置
ElementType取值:
TYPE:可以作用于類上
METHOD:可以作用于方法上
FIELD:可以作用于成員變量上
@Retention:描述注解被保留的階段
@Retention(RetentionPolicy.RUNTIME):當(dāng)前被描述的注解,會(huì)保留到class字節(jié)碼文件中,并被JVM讀取到
@Documented:描述注解是否被抽取到api文檔中
@Inherited:描述注解是否被子類繼承
6、在程序使用(解析)注解:獲取注解中定義的屬性值
(1)獲取注解定義的位置的對(duì)象 (Class,Method,Field)
(2)獲取指定的注解
getAnnotation(Class)
//其實(shí)就是在內(nèi)存中生成了一個(gè)該注解接口的子類實(shí)現(xiàn)對(duì)象
public class ProImpl implements Pro{
public String className(){
return "cn.itcast.annotation.Demo1";
}
public String methodName(){
return "show";
}
}
(3)調(diào)用注解中的抽象方法獲取配置的屬性值。