本文目錄一覽:
- 1、java自定義註解類中的方法可以帶參數嗎
- 2、java方法名前注釋問題
- 3、JAVA求加註解
- 4、java註解是怎麼實現的
- 5、java開發時怎麼自動添加註解
- 6、Java 中的@param 註解如何使用?
java自定義註解類中的方法可以帶參數嗎
是的,當註解有value()方法時,不需要指明具體名稱,Java註解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。 註解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。
java方法名前注釋問題
Java註解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。
註解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annotation 包中。
1、元註解
元註解是指註解的註解。包括 @Retention @Target @Document @Inherited四種。
1.1、@Retention: 定義註解的保留策略
@Retention(RetentionPolicy.SOURCE) //註解僅存在於源碼中,在class位元組碼文件中不包含
@Retention(RetentionPolicy.CLASS) // 默認的保留策略,註解會在class位元組碼文件中存在,但運行時無法獲得,
@Retention(RetentionPolicy.RUNTIME) // 註解會在class位元組碼文件中存在,在運行時可以通過反射獲取到
1.2、@Target:定義註解的作用目標
@Target(ElementType.TYPE) //介面、類、枚舉、註解
@Target(ElementType.FIELD) //欄位、枚舉的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法參數
@Target(ElementType.CONSTRUCTOR) //構造函數
@Target(ElementType.LOCAL_VARIABLE)//局部變數
@Target(ElementType.ANNOTATION_TYPE)//註解
@Target(ElementType.PACKAGE) ///包
由以上的源碼可以知道,他的elementType 可以有多個,一個註解可以為類的,方法的,欄位的等等
1.3、@Document:說明該註解將被包含在javadoc中。
1.4、@Inherited:說明子類可以繼承父類中的該註解。
JAVA求加註解
public class Sentence //定義一個訪問級別為public(公有的)的類Sentence
{
private String words; //定義一個全局變數的訪問級別為private(私有的)的字元串(String)變數words
private String Text=””; //定義一個全局變數的訪問級別為private(私有的)的字元串(String)變數Text,並賦值為””;
public Sentence (String text) //定義一個訪問級別為public(公有的)的Sentence類的無返回值構造方法,並創建構造方法參數為一個String(字元串)類型的變數,text為傳入變數的接收者,便於在該方法內部使用
{
this.words=text; //為該類的私有字元串words賦值,賦值為text,這裡的this表示該類的實例(對象),this.(點)該類全局變數即可使用
}
public String reversedText(int a) //定義一個訪問級別為public(公有的)的返回String(字元串)類型的方法reversedText,並創建該方法的參數為一個int(整型)的變數,a為傳入變數的接收者,便於在該方法內部使用
{
Text=Text+words.charAt(a); //給全局變數Text賦值為Text加全局變數words的第a個字元,字元串相加是依次首尾連接起來的,也就是說String a = “ni”; String b = “hao”; a+b則等於”nihao”,該處的charAt(int index)方法是一個能夠用來檢索特定引索下的字元的String實例的方法,返回一個字元,舉例:String a = “abcdefg”; a.charAt(3)則返回字元”d”,索引是從0開始的
if (a=1) //if條件判斷,()內為判斷條件,這句話意思是如果a 大於等於 1的話執行下面大括弧內的操作
{
return reversedText(a-1); //滿足上麵條件了執行這句話,返回reversedText(a-1),也就是說再次執行該方法,並且傳入方法參數a-1,因為reversedText(age 0)方法返回一個整型變數,所以可以直接用這個方法作為返回值,再次調用方法傳入a-1的數字,實質上就是想讓a的值不滿足上頭if條件。
}
else //如果不滿足上面的條件則執行下面大括弧內的操作
return Text; //返回全局變數Text
} //這個方法在方法里調用了自己,俗稱遞歸
public void reverse() //定義一個訪問級別為public(公有的)的無返回值的(void就是無返回值,不寫也默認是void)方法reverse,沒有參數
{
int i=words.length()-1; //定義一個整型變數i,賦值為全局變數words字元串的長度-1
reversedText(i); //調用 reversedText(i)方法傳入參數i
}
public String getText(){ //定義一個訪問級別為public(公有的)返回String(字元串類型)的方法 getText,無參數,該方法是得到全區變數Text的方法。
return Text; //返回全局變數Text
}
public static void main (String []args) //程序主函數入口,可自動生成
{
Sentence greeting = new Sentence(“Hello!”); //創建一個Sentence 類的實例(對象)greeting ,因為Sentence類(也就是本類)的構造方法有參數,所以傳入參數”Hello”,構造方法在創建實例的時候自動調用。
greeting.reverse(); //用greeting調用該實例所屬類的 reverse方法。實例的一個作用就是調用所屬類的屬性及方法。
System.out.println(greeting.getText()); //在控制台列印出全局變數Text,System.out.println()為列印方法,是在控制台列印,裡面必須是字元串,調用里調用getText()方法得到全局變數Text,並列印在控制台上
}
java註解是怎麼實現的
註解的使用一般是與java的反射一起使用,下面是一個例子
註解相當於一種標記,在程序中加了註解就等於為程序打上了某種標記,沒加,則等於沒有某種標記,以後,javac編譯器,開發工具和其他程序可以用反射來了解你的類及各種元素上有無何種標記,看你有什麼標記,就去干相應的事。標記可以加在包,類,欄位,方法,方法的參數以及局部變數上。
自定義註解及其應用
1)、定義一個最簡單的註解
public @interface MyAnnotation {
//……
}
2)、把註解加在某個類上:
@MyAnnotation
public class AnnotationTest{
//……
}
以下為模擬案例
自定義註解@MyAnnotation
1 package com.ljq.test;
2
3 import java.lang.annotation.ElementType;
4 import java.lang.annotation.Retention;
5 import java.lang.annotation.RetentionPolicy;
6 import java.lang.annotation.Target;
7
8 /**
9 * 定義一個註解
10 *
11 *
12 * @author jiqinlin
13 *
14 */
15 //Java中提供了四種元註解,專門負責註解其他的註解,分別如下
16
17 //@Retention元註解,表示需要在什麼級別保存該注釋信息(生命周期)。可選的RetentionPoicy參數包括:
18 //RetentionPolicy.SOURCE: 停留在java源文件,編譯器被丟掉
19 //RetentionPolicy.CLASS:停留在class文件中,但會被VM丟棄(默認)
20 //RetentionPolicy.RUNTIME:內存中的位元組碼,VM將在運行時也保留註解,因此可以通過反射機制讀取註解的信息
21
22 //@Target元註解,默認值為任何元素,表示該註解用於什麼地方。可用的ElementType參數包括
23 //ElementType.CONSTRUCTOR: 構造器聲明
24 //ElementType.FIELD: 成員變數、對象、屬性(包括enum實例)
25 //ElementType.LOCAL_VARIABLE: 局部變數聲明
26 //ElementType.METHOD: 方法聲明
27 //ElementType.PACKAGE: 包聲明
28 //ElementType.PARAMETER: 參數聲明
29 //ElementType.TYPE: 類、介面(包括註解類型)或enum聲明
30
31 //@Documented將註解包含在JavaDoc中
32
33 //@Inheried允許子類繼承父類中的註解
34
35
36 @Retention(RetentionPolicy.RUNTIME)
37 @Target({ElementType.METHOD, ElementType.TYPE})
38 public @interface MyAnnotation {
39 //為註解添加屬性
40 String color();
41 String value() default “我是林計欽”; //為屬性提供默認值
42 int[] array() default {1, 2, 3};
43 Gender gender() default Gender.MAN; //添加一個枚舉
44 MetaAnnotation metaAnnotation() default @MetaAnnotation(birthday=”我的出身日期為1988-2-18″);
45 //添加枚舉屬性
46
47 }
註解測試類AnnotationTest
1 package com.ljq.test;
2
3 /**
4 * 註解測試類
5 *
6 *
7 * @author jiqinlin
8 *
9 */
10 //調用註解並賦值
11 @MyAnnotation(metaAnnotation=@MetaAnnotation(birthday = “我的出身日期為1988-2-18″),color=”red”, array={23, 26})
12 public class AnnotationTest {
13
14 public static void main(String[] args) {
15 //檢查類AnnotationTest是否含有@MyAnnotation註解
16 if(AnnotationTest.class.isAnnotationPresent(MyAnnotation.class)){
17 //若存在就獲取註解
18 MyAnnotation annotation=(MyAnnotation)AnnotationTest.class.getAnnotation(MyAnnotation.class);
19 System.out.println(annotation);
20 //獲取註解屬性
21 System.out.println(annotation.color());
22 System.out.println(annotation.value());
23 //數組
24 int[] arrs=annotation.array();
25 for(int arr:arrs){
26 System.out.println(arr);
27 }
28 //枚舉
29 Gender gender=annotation.gender();
30 System.out.println(“性別為:”+gender);
31 //獲取註解屬性
32 MetaAnnotation meta=annotation.metaAnnotation();
33 System.out.println(meta.birthday());
34 }
35 }
36 }
枚舉類Gender,模擬註解中添加枚舉屬性
1 package com.ljq.test;
2 /**
3 * 枚舉,模擬註解中添加枚舉屬性
4 *
5 * @author jiqinlin
6 *
7 */
8 public enum Gender {
9 MAN{
10 public String getName(){return “男”;}
11 },
12 WOMEN{
13 public String getName(){return “女”;}
14 }; //記得有「;」
15 public abstract String getName();
16 }
註解類MetaAnnotation,模擬註解中添加註解屬性
1 package com.ljq.test;
2
3 /**
4 * 定義一個註解,模擬註解中添加註解屬性
5 *
6 * @author jiqinlin
7 *
8 */
9 public @interface MetaAnnotation {
10 String birthday();
11 }
java開發時怎麼自動添加註解
想要自動添加註釋,首先需要對eclipse進行一些設置。
打開Eclipse,然後點擊-windows-preferences-Java-code styles-code templates-comments-types-點擊右側的edit進行編輯,在打開的編輯窗口中修改下面的文字
/**
* @author ${user}
*
* ${tags}
*/
替換成
/**
* @author 你的名字
*
* ${tags}
*/
上面的操作對應的圖片是這樣的:
這樣作者就修改成你的名字了,更多的信息可以點擊本編輯窗口上面的insert varibles按鈕,會彈出一些文件名稱,項目名稱等參數,你可以選擇性地添加到你的注視中。
然後在你的類中,你只要敲入/**然後換行,注釋就自動滴添加到你的代碼中了~希望能幫上你的忙~^_^
追問:
這只是文檔前的版權聲明注釋,如果要在文檔中對代碼添加註釋,裡面帶上修改時間,如何弄
回答:
這樣弄哈~
1.開始還是打開Eclipse,然後點擊-windows-preferences-Java-code styles-code templates-comments
2.下一步選擇methods,而不是types。然後edit,insert varibles,添加上date變數,長下面這個樣子。
然後你在你的函數上面同樣是敲入/**回車,就出現了修改的日期了
補充:
對於那個行首出現注釋的問題是java的代碼風格的問題,可以這樣改
打開Eclipse,然後點擊-windows-preferences-Java-code styles-formatter
-edit-comment 的標籤頁-never indent line comments on first column
這樣,注釋的//就會縮進了,而不是頂在行首了~
Java 中的@param 註解如何使用?
註解,@param是參數的解釋。如:/***@param s 這裡表示對s的文字說明,描述*/public void aa(String s){}一般java中@表示註解,解釋一個方法,類,屬性的作用。
一. 基本概念
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、遊戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。
二. 研發背景
Java是由Sun Microsystems公司推出的Java面向對象程序設計語言(以下簡稱Java語言)和Java平台的總稱。Java由James Gosling和同事們共同研發,並在1995年正式推出。Java最初被稱為Oak,是1991年為消費類電子產品的嵌入式晶元而設計的。1995年更名為Java,並重新設計用於開發Internet應用程序。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動態Web、Internet計算。
原創文章,作者:L1ZZY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128522.html