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

本文介绍了Java增强特性如枚举、增强for循环等,并深入探讨了反射机制的基础知识及其应用场景,包括类加载器的使用、构造方法及字段的获取。

---------------------- 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.youkuaiyun.com/heima

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值