這是一個(gè)Annotation
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、延邊朝鮮族ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的延邊朝鮮族網(wǎng)站制作公司
Annotation接口的實(shí)現(xiàn)類: Documented, Inherited, Retention, Target 都是用來(lái)定義自己定義的Annotation類的。
1. 注解(Annotation)類,以@interface 修飾 ,不能顯示(explicit)extends或implements任何類
如:
java 代碼
public @interface DefineAnnotation {
}
這種沒(méi)有任何屬性的Annotation類,也叫標(biāo)識(shí)Annotation
2. 定義屬性
java 代碼
//屬性必須加個(gè)小括號(hào)
public String value() ;
//有默認(rèn)值的屬性
public String value() default "aaa";
完整定義如下:
java 代碼
//注解Annotation類不能顯示(explicit)extends或implements任何類
//不定義任何屬性就叫maket annotation
public @interface DefineAnnotation {
//定義一個(gè)屬性,有屬性的話,必須賦值,除非有默認(rèn)default
public String value() default "aaa";
}
3.使用Annotation,有默認(rèn)值的可以不用傳參數(shù),也可以傳遞參數(shù)。沒(méi)有默認(rèn)值的,必須傳遞參數(shù)。
如:
java 代碼
public class TestAnnotation {
// @DefineAnnotation 有默認(rèn)值的第一種使用方式
// @DefineAnnotation() 有默認(rèn)值的第二種使用方式
@DefineAnnotation("ttitfly")
public void say(){
System.out.println("say hello");
}
public static void main(String[] args){
TestAnnotation ta = new TestAnnotation();
ta.say();
}
}
4. Retention (保存)
所有的Annotation類都實(shí)現(xiàn)了Annotation接口
@Retention本身就是個(gè)Annotation(注解)類
它的值是個(gè)enum枚舉類型的RetentionPolicy,該枚舉類型RetentionPolicy有三個(gè)值RUNTIME (會(huì)被JVM加載,并可以通過(guò)反射來(lái)獲得到Annotation類的信息) ,CLASS (不會(huì)被JVM加載),Source
@Retention的值標(biāo)識(shí)自己定義的Annotation(注解)類 是屬于哪種保存策略,將來(lái)哪個(gè)類如果使用了這個(gè)自定義的注解類,將會(huì)使用這種保存策略
如:
java 代碼
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//所有的Annotation類都實(shí)現(xiàn)了Annotation接口
//@Retention本身就是個(gè)Annotation(注解)類
//它的值是個(gè)enum枚舉類型的RetentionPolicy,該枚舉類型RetentionPolicy有三個(gè)值RUNTIME (會(huì)被JVM加載,并可以通過(guò)反射來(lái)獲得到Annotation類的信息) ,CLASS (不會(huì)被JVM加載),Source
//@Retention的值標(biāo)識(shí)自己定義的Annotation(注解)類 是屬于哪種保存策略,將來(lái)哪個(gè)類如果使用了這個(gè)自定義的注解類,將會(huì)使用這種保存策略
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String hello() default "ttitfly";
String world();
}
java 代碼
//使用自己定義的Annotation類
public class MyTest {
//一個(gè)方法可以有多個(gè)注解類
@Deprecated
@MyAnnotation(hello="china",world="earth")
public void say(){
System.out.println("say hello");
}
}
java 代碼
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
你拷下我的以下的代碼去運(yùn)行就知道了:1:建一個(gè)Person類//定義一個(gè)Person類
public
class
Person
{
String
name="李三";
//定義一個(gè)name屬性,后面帶的值是無(wú)參構(gòu)造方法的默認(rèn)值,也可以不用進(jìn)行初始化賦值
int
age=20;
//定義一個(gè)age屬性,,后面帶的值是無(wú)參構(gòu)造方法的默認(rèn)值,也可以不用進(jìn)行初始化賦值 //這個(gè)無(wú)參構(gòu)造方法,你不寫(xiě)也可以;
//系統(tǒng)默認(rèn)會(huì)創(chuàng)建一個(gè)無(wú)參的構(gòu)造方法的,即不用帶參數(shù)
public
Person(){
}
//這個(gè)有參的構(gòu)造方法,參數(shù)你可以自定義
//比如這個(gè)我?guī)Я怂械膮?shù)
public
Person(String
name,
int
age){
this.name=name;
this.age=age;
}
//這個(gè)有參的構(gòu)造方法,我?guī)Я薾ame屬性作為參數(shù)
public
Person(String
name){
this.name=name;
}
//這個(gè)有參的構(gòu)造方法,我?guī)Я薬ge屬性作為參數(shù)
public
Person(int
age){
this.age=age;
}
//自我介紹的方法
public
String
introduce(){
return
"大家好,我叫"+name+",今年"+age+"歲了";
}
public
String
introduceName(){
return
"大家好,我叫"+name;
}
public
String
introduceAge(){
return
"大家好,我"+"今年"+age+"歲了";
}}
2:建一個(gè)測(cè)試Person類的測(cè)試類: public
class
TestPerson
{ public
static
void
main(String[]
args)
{
//public
Person(){}
//這是Person類的無(wú)參構(gòu)造方法,不用帶參數(shù)
Person
per
=
new
Person();
//Person類中我們進(jìn)行了初始化了
System.out.println(per.introduce());
//輸出信息
//public
Person(String
name,
int
age){}
//這是Person類的有參構(gòu)造方法,要帶參數(shù)帶參數(shù)(name,age)
Person
perSon
=
new
Person("李力",20);
//輸入值
System.out.println(perSon.introduce());
//輸出信息
//public
Person(String
name){}
//這是Person類的有參構(gòu)造方法,要帶參數(shù)帶參數(shù)(name)
Person
perName
=
new
Person("莉莉");
//輸入值
System.out.println(perName.introduceName());
//輸出信息
//public
Person(int
age){}
//這是Person類的有參構(gòu)造方法,要帶參數(shù)帶參數(shù)(age)
Person
perAge
=
new
Person(20);
//輸入值
System.out.println(perAge.introduceAge());
//輸出信息
}}
按F11進(jìn)行運(yùn)行吧我里面寫(xiě)很多注釋了,很容易看懂的,就這樣~~~望采納-_-=謝謝
類是一種引用數(shù)據(jù)類型。類為對(duì)象的模板,簡(jiǎn)單的說(shuō)就是分類。
類的定義包括“成員變量”的定義和“方法”的定義,其中“成員變量”用于描述一類對(duì)象共同的數(shù)據(jù)結(jié)構(gòu)。在Java語(yǔ)言中,類的成員變量的定義可以使用如下語(yǔ)法:
class 類名 {
成員變量類型變量名稱;
………
}
類是用class關(guān)鍵字來(lái)定義的一種抽象數(shù)據(jù)類型,類不但定義了抽象數(shù)據(jù)類型的組成(成員變量),同時(shí)還定義了對(duì)該類型可以實(shí)施的操作(方法),類名的首字母必須大寫(xiě)??慈缦麓a定義了雇員類:
/** 定義雇員類 */
public class Emp{
String name;
int age;
char gender;
double salary;
}
在如上的實(shí)例代碼中,僅僅定義了Emp類型的組成,即成員變量。該類定義了4個(gè)成員變量:String類型的name用于存放名字;int類型的age用于存放年齡;char類型的gender用于存放性別;double類型的salary用于存放工資。
class B{\x0d\x0a private int a;//聲明變量\x0d\x0a public B()//構(gòu)造函數(shù)\x0d\x0a{\x0d\x0a}\x0d\x0apublic void setA(int a)//設(shè)置a的值\x0d\x0a{\x0d\x0a this.a=a;\x0d\x0a\x0d\x0a}\x0d\x0apublic int getA()//獲取a的值\x0d\x0a{\x0d\x0areturn a;\x0d\x0a}\x0d\x0apublic public static void main(String[] args)//必須要的主函數(shù)\x0d\x0a{\x0d\x0aB b=new B();//建立一個(gè)B的對(duì)象b\x0d\x0ab.setA(3);//調(diào)用b對(duì)象里的方法setA();\x0d\x0aSystem.out.println(b.getA);//輸出a\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a}