天天看点

黑马程序员-------Java基础加强1

---------------------- 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