---------------------- android培训、java培训、期待与您交流!----------------------
Java增强
eclipse ____最广泛的工具
工程----最高级目录 包括 资源文件等 一个工作间包含多个工程
配置环境,运行的版本要与编译环境版本一致
import static
导入一个类中的静态方法
import static java.lang.Math.*
增强for循环
语法 for(type 变量名:集合变量名)
{执行语句}
枚举 :枚举就是要让每个类型的变量的取值只能为若干个固定值中的一个,否则编译会报错。
枚举可让编译器在编译时就控制非法值,
枚举的应用
public enum WeekDay
{
SUN,MON,TUE,WED,THI,FRI;
}
类方法,ValueOf("") 柑橘串变成对应对象
values()把所以的枚举变成数组
枚举元素后跟() 指向指定构造方法
反射的基石
Class C大写 类类型
Class cls1=字节码
Class类的各个实例对象?
对应各个类在内存中的字节码
如果得到各个字节码对应的实例对象
类名.class
class.forName () 对象.getclass()
String s1="abc"
Class c1=s1.getclass()
Class c2=string.class()
Class c3=class.forName("java.lang.string")
返回的三个字节码相同
isprimitive 是否为基本类型
数组类型的class实例对象 class.isArry()
反射的定义
就是把java类中各种成分映射成为相对应的java类
Constructor 类 --------构造类
得到所有的构造方法
Constructor [] cst=Class.forName("java.lang.string").getConstructor;
得到某一个
Constructor cst=Class.forName("java.lang.string").getConstructor(StringBuffer.class)
Field-----------对象
例子 :将字符串的所有内容中“b"改为"a"
Field[] fields=obj.getclass().getFilds()
for(Fied field : fields)
{
if(field.getType()==string.class)
{
string old=(string)field.get(obj)
string new=old.replace('b','a')
field.set(obj,new)
}
}
Method类
数组的反射
Arrays.asList(数组对象)
int[]不行 ,
在ArrayList 同样的元素 会不同的存储
在Hashset中,同样的对象元素认为是同一个,把相同的对象通过算法放在同一区域
对象相等,hashcode相等
反射的作用 ——————实现框架的功能
关联外部文件,让程序读取
类加载器
.class.getclassloader()getResourceAsStream()
.classgetResourceAsStream(name);
内省 JAVA Bean
特殊的java;类
int getAge()
void setAge(int age)
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima