重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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}
创新互联建站科技有限公司专业互联网基础服务商,为您提供四川主机托管,高防主机,成都IDC机房托管,成都主机托管等互联网服务。
类是一种引用数据类型。类为对象的模板,简单的说就是分类。
类的定义包括“成员变量”的定义和“方法”的定义,其中“成员变量”用于描述一类对象共同的数据结构。在Java语言中,类的成员变量的定义可以使用如下语法:
class 类名 {
成员变量类型变量名称;
………
}
类是用class关键字来定义的一种抽象数据类型,类不但定义了抽象数据类型的组成(成员变量),同时还定义了对该类型可以实施的操作(方法),类名的首字母必须大写。看如下代码定义了雇员类:
/** 定义雇员类 */
public class Emp{
String name;
int age;
char gender;
double salary;
}
在如上的实例代码中,仅仅定义了Emp类型的组成,即成员变量。该类定义了4个成员变量:String类型的name用于存放名字;int类型的age用于存放年龄;char类型的gender用于存放性别;double类型的salary用于存放工资。
这是一个Annotation
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;
定义一个类,class A={},然后创建这个类对象,A a = new A();有没有参数看你类定义的构造函数; 例代码如下:
class TestInner{
public static void main(String [] args)
{
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
}
}
在内部类(Inner Class),可以随意的访问外部类的成员,这可让我们更好地组织管理我们的代码,增强代码的可读性。