枚举, 享元模式,反射,高新技术加强学习笔记

来源:互联网 发布:linux zip2.3压缩 编辑:程序博客网 时间:2024/05/16 09:25

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

1:枚举 属性的值只能是固定值范围内的, 每个元素都是对象 final static 描述属性

public enum WeekDay{
SUN(1),MON(),TUE,WED,THI,FIR,SAT;  //都是类对象,(1)代表调用带参数的构造方法。
private WeekDay(){};//构造方法必须放到对象下面,还需私有话
private WeekDay(int day){};
}

WeekDay week=WeekDay.SUN;
week.name()    //自己的名字
week.ordinal()//返回序号
Week.valueOf("SUN")//静态方法,打一个字符串,变成枚举对象。
Week.values()//得到元素 返回到一个数组中。

public enum Tra{
RED(3){
public Tra nextLamp(){return GREEN;}
},
GREEN(4){
public Tra nextLamp(){return YELLOW;}
},
YELLOW(5){
public Tra nextLamp(){return RED;}
};
public abstract Tra nextLamp();
private int time;
private Tra(int time){this,time=time;}
}

2:享元模式 有很多小的对象,有很多相同的属性,把他们变成一个对象,不同的属性变成方法的参数传入。 内部状态和外部状态 

例子:char a='a';

            char b=new Character('a');

   System.out.println(a==b);//返回值是true  内存中有一个常量池,当第一字符‘a’创建后,其他程序在创建字符'a'时,内存不会再开辟新空间,会只把已经存在的对象地址付给变量。


3:反射: Class类 描述java程序中class的类
3.1获得Class类
  类名.class
  Class.forName("类名") 返回字节码 
  对象.getClass()
Method 类方法的类
Field成员变量的类(字段)Class.getField()
Field[] fields=Class.getField()
fields[1].getType()==String.class//返回字段类型 Class类型
fields[1].get() //得到字段的值
fields[1].set()//设置字段值
Method method=String.class.getMethod(方法名称,参数)

method.invoke(对象,参数)

数组的反射:具有相同维数和类型的数组字节码都是一样的。


---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

0 0
原创粉丝点击