关闭

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

99人阅读 评论(0) 收藏 举报

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

 



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3657次
    • 积分:152
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类