重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这是一个Annotation
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、延边朝鲜族ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的延边朝鲜族网站制作公司
Annotation接口的实现类: Documented, Inherited, Retention, Target 都是用来定义自己定义的Annotation类的。
1. 注解(Annotation)类,以@interface 修饰 ,不能显示(explicit)extends或implements任何类
如:
java 代码
public @interface DefineAnnotation {
}
这种没有任何属性的Annotation类,也叫标识Annotation
2. 定义属性
java 代码
//属性必须加个小括号
public String value() ;
//有默认值的属性
public String value() default "aaa";
完整定义如下:
java 代码
//注解Annotation类不能显示(explicit)extends或implements任何类
//不定义任何属性就叫maket annotation
public @interface DefineAnnotation {
//定义一个属性,有属性的话,必须赋值,除非有默认default
public String value() default "aaa";
}
3.使用Annotation,有默认值的可以不用传参数,也可以传递参数。没有默认值的,必须传递参数。
如:
java 代码
public class TestAnnotation {
// @DefineAnnotation 有默认值的第一种使用方式
// @DefineAnnotation() 有默认值的第二种使用方式
@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类都实现了Annotation接口
@Retention本身就是个Annotation(注解)类
它的值是个enum枚举类型的RetentionPolicy,该枚举类型RetentionPolicy有三个值RUNTIME (会被JVM加载,并可以通过反射来获得到Annotation类的信息) ,CLASS (不会被JVM加载),Source
@Retention的值标识自己定义的Annotation(注解)类 是属于哪种保存策略,将来哪个类如果使用了这个自定义的注解类,将会使用这种保存策略
如:
java 代码
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//所有的Annotation类都实现了Annotation接口
//@Retention本身就是个Annotation(注解)类
//它的值是个enum枚举类型的RetentionPolicy,该枚举类型RetentionPolicy有三个值RUNTIME (会被JVM加载,并可以通过反射来获得到Annotation类的信息) ,CLASS (不会被JVM加载),Source
//@Retention的值标识自己定义的Annotation(注解)类 是属于哪种保存策略,将来哪个类如果使用了这个自定义的注解类,将会使用这种保存策略
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String hello() default "ttitfly";
String world();
}
java 代码
//使用自己定义的Annotation类
public class MyTest {
//一个方法可以有多个注解类
@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;
你拷下我的以下的代码去运行就知道了:1:建一个Person类//定义一个Person类
public
class
Person
{
String
name="李三";
//定义一个name属性,后面带的值是无参构造方法的默认值,也可以不用进行初始化赋值
int
age=20;
//定义一个age属性,,后面带的值是无参构造方法的默认值,也可以不用进行初始化赋值 //这个无参构造方法,你不写也可以;
//系统默认会创建一个无参的构造方法的,即不用带参数
public
Person(){
}
//这个有参的构造方法,参数你可以自定义
//比如这个我带了所有的参数
public
Person(String
name,
int
age){
this.name=name;
this.age=age;
}
//这个有参的构造方法,我带了name属性作为参数
public
Person(String
name){
this.name=name;
}
//这个有参的构造方法,我带了age属性作为参数
public
Person(int
age){
this.age=age;
}
//自我介绍的方法
public
String
introduce(){
return
"大家好,我叫"+name+",今年"+age+"岁了";
}
public
String
introduceName(){
return
"大家好,我叫"+name;
}
public
String
introduceAge(){
return
"大家好,我"+"今年"+age+"岁了";
}}
2:建一个测试Person类的测试类: public
class
TestPerson
{ public
static
void
main(String[]
args)
{
//public
Person(){}
//这是Person类的无参构造方法,不用带参数
Person
per
=
new
Person();
//Person类中我们进行了初始化了
System.out.println(per.introduce());
//输出信息
//public
Person(String
name,
int
age){}
//这是Person类的有参构造方法,要带参数带参数(name,age)
Person
perSon
=
new
Person("李力",20);
//输入值
System.out.println(perSon.introduce());
//输出信息
//public
Person(String
name){}
//这是Person类的有参构造方法,要带参数带参数(name)
Person
perName
=
new
Person("莉莉");
//输入值
System.out.println(perName.introduceName());
//输出信息
//public
Person(int
age){}
//这是Person类的有参构造方法,要带参数带参数(age)
Person
perAge
=
new
Person(20);
//输入值
System.out.println(perAge.introduceAge());
//输出信息
}}
按F11进行运行吧我里面写很多注释了,很容易看懂的,就这样~~~望采纳-_-=谢谢
类是一种引用数据类型。类为对象的模板,简单的说就是分类。
类的定义包括“成员变量”的定义和“方法”的定义,其中“成员变量”用于描述一类对象共同的数据结构。在Java语言中,类的成员变量的定义可以使用如下语法:
class 类名 {
成员变量类型变量名称;
………
}
类是用class关键字来定义的一种抽象数据类型,类不但定义了抽象数据类型的组成(成员变量),同时还定义了对该类型可以实施的操作(方法),类名的首字母必须大写。看如下代码定义了雇员类:
/** 定义雇员类 */
public class Emp{
String name;
int age;
char gender;
double salary;
}
在如上的实例代码中,仅仅定义了Emp类型的组成,即成员变量。该类定义了4个成员变量:String类型的name用于存放名字;int类型的age用于存放年龄;char类型的gender用于存放性别;double类型的salary用于存放工资。
class B{\x0d\x0a private int a;//声明变量\x0d\x0a public B()//构造函数\x0d\x0a{\x0d\x0a}\x0d\x0apublic void setA(int a)//设置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)//必须要的主函数\x0d\x0a{\x0d\x0aB b=new B();//建立一个B的对象b\x0d\x0ab.setA(3);//调用b对象里的方法setA();\x0d\x0aSystem.out.println(b.getA);//输出a\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a}