森纵培训第二十二天课程总结

序列流:将多个字节流合并处理;
基于6.0版本的序列流:
SequenceInputStream 实现的接口有Closeable
基于7.0版本的序列流:
SequenceInputStream 实现的接口有Closeable AutoCloseable


InputStreamReader  BufferedReader
此类的作用就是“字节流”与“字符流”进行转换的桥梁,将字节流-》字符流。


标识符与关键字:
标识符:标记名称的符号。
针对某种确定的编程语言,只要符合这种语言的命名规则,名称就是合法的标识符。
从这个角度上来说,关键字更加符合标识符的标准。
两者之间的关系:
关键字肯定是合法的标识符;
作为关键字,肯定不能在该编程语言中做为变量的命名标识符;
同一个合法的标识符(包括关键字),在一种语言中是不合法的名称,在另一种语言中可能就是合法的。
问题:在java中,能否用类名命名标识符?可以。如:int String = 22;语法上对,但不符合java的命名习惯

反射:
这个章节中的内容属于“非常规编程”技术;
常用于框架设计或模式设计中。
在一个类中,总的来说,有字段和方法及构造器三部分组成;
字段是来保存类或对象的数据值的;
方法是对类或对象的操作的;
构造器是构造对象的;

反射是用来处理“元数据”的。
比如说某类有一个字段,叫做name,它用来保存对象的姓名值;
反射技术是来操作name这个字段本身的,是对字段、方法、构造器的封装。
Field
Method
Constructor
以上的三个反射类或相关类都在java.lang.reflect包中。
在java源代码中,只有java.lang包中的类会自动导入进来,并不包括子包。就是说如果需要使用子包中类时,必须使用import导入到代码中。
通过类名或类实例可以得到类综合信息的封装体,这个封装也是以对象的方式提供的,称为Class。这个Class对象封装了该类的所有“元数据”信息。
如何得到这个封装体?
通过类名
通过类对象,调用Object中提供的getClass()方法
使用Class<T>或Class<?>的场合?
如果类名已知,使用Class<T>;
如果类名未知,使用Class<?>
获取类全名:getName()

获取简单类名:getSimpleName

一个类的元数据封装体就一个,属于单例类;
不论这个对象是用什么方式得到的。
获取字段的方法:getField(String name)   getFields()

以上两个方法受到的访问修饰级别的限制;而常用的是下面的方法:
getDeclaredField(String name)   getDeclaredField()
使用以上两个声明字段的访问,标志着通过反射技术,可以直接访问类中的私有成员。


与Field有关的方法:
字段的两种功能:赋值和获取
正常赋值方式:Student s = new Student();s.setName(“zhangsan”);
以上的赋值中,s是实例,setName是方法,”zhangsan”是赋的数据。
现在有了Field对象,可以通过反射赋值和获取值;
File类 set(Object obj,Object value)

获取字段值的方法:get(Object obj)

Field,Method,Constrator三个类有一个共同的父类AccessibleObject;
在父类中提供了两个增强访问权限(即可以访问私有成员)的方法:
setAccessible(AccessibleObject[] array,boolean flag)   setAccessible(boolean flag)


Constructor类:getDeclaredConstrutor(Class<?>... parameterTypes)

通过构造器元数据对象获取类对象; newInstance(Object... initargs)


Method类:getDeclaredMethod(String name,Class<?>... parameterTypes)  getDeclaredMethod()


Class类的一个非常有用的方法:
forName(String)

方法的作用是通过类全名来得到一个类对象!
总结一下,获取类的实例共有哪些方法?
直接调用构造器,使用new运算符构造对象,这也是最常用的方法;
通过调用类的静态工厂方法获取类的实例;
通过类全名
通过构造器Constructor的newInstance()方法


反射技术中的访问修改级别问题:getModifiers()


该类负责将整数表示的访问修饰级别转换为熟悉的访问修饰的关键字级别。
toString(int mod)
该方法负责将整数变为字符串







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值