反射
Java反射是指在程序运行期间,可以动态地获取和操作类中定义的属性和方法以及构造方法的机制(思想)的实现,而不需要在编译期间知道类名或者其成员变量和方法具体等的信息。
有对象之前必须先有类,static来修饰类的属性和方法
在java中存储了类的内容,这个内容也应该是一个对象
java中每一个类都有一个内存,这每一块内存都是一个对象
这些对象记录了这些类中声明了哪些属性和方法以及构造方法
java将这些类抽象为一个Class类
反射的核心是Class类,程序中使用的类,每一个都有唯一的一个对应的Class对象
反射会破坏类的封装性
Class
Class类的对象是不能new的
获取类的类对象有三个方式
1.通过类名获取类对象
2.通过对象获取类对象
3.通过Class方法的forName方法获取
类的类对象中存储了类中定义的内容:属性/方法/构造方法
对应API:Field/Method/Constructor
测试类
反射获取类中的属性
java中用来记录类的属性的类叫做Field
用c.getField(name)获取对象类的一个属性
用c.getFields()获取对象类的所有属性
fName指向的对象是Easy类中的name属性
可以通过fName.get()获取某一个Easy类的对象的name属性的值
可以通过fName.set()为某一个Easy类的对象注入name属性的值
注意:1.getField()和getFields()只能获取类中的public声明的属性
包括从父类继承过来的字段
getDeclaredField()和getDeclaredFields()可以获取任何声明的属性
因此由于测试类中code由protected修饰
2.反射访问私有属性时,必须先获取访问权限
反射获取类中的方法
java中用来记录类的方法的类叫做Method
用c.getMethod(name,..参数类型的类(可变参数))获取对象类的方法
面向对象调用方法:对象.方法名()
反射调用方法:method.invoke(对象,..参数(可变参数))
获取并调用含参数的方法
反射获取类中的构造方法
java中用来记录类的构造方法的类叫做Method
用c.getConstructor()获取对象类的无参构造方法
用c.getConstructor(属性的类型的类)获取对象类的有参构造方法
调用构造方法分为调用无参构造方法和调用有参构造方法
调用无参构造方法有两种:
1.直接用类对象调用
2.用获取的Constructor对象调用
调用有参构造方法:
反射中对对象类的修饰符的判断
用Modifier的方法判断方法|属性|构造方法的修饰符
Easy类中对test的定义
获取test属性,并判断是否被static修饰
内省
也是通过反射实现的,但不会破坏封装性
获取BeanInfo 类中的信息
封装进对应数组内
数组内信息
获取属性的写的方法setter和读的方法getter
获取属性的名字
通过getReadMethod()和getWriteMethod()方法获取对应getter和setter方法
最后通过method.invoke调用
html常用标签
标题h1-h6
<h1>文本<h1/>
<h6>文本<h6/>
图片
src图片路径
alt图片加载失败后显示的文本
<img src="" alt=""/>
超链接
href链接的地址
<a href="">文本</a>
通过超链接进入的网页
表格
<table></table>
表格行数
<tr></tr>
表格格数
<td></td>
colspan单元格占用的横格的格数
rowspan单元格占用的竖格的格数
列表
有序号的列表
<ol></ol>
无序号的列表
<ul></ul>
列表的行内容
<li></li>
表单
action提交表单的地址
method提交的方式
<form action="" method=""></from>
表单中的组件
输入框
value输入框中显现的内容
readonly不可修改的
<input type="text" name="" value=""/>
密码框
<input type="password" name=""/>
隐藏域
value隐藏域中的内容
<input type="hidden" name="" value=""/>
单选框
id用于关联<label>文本框中的for
checked默认选中
value选项的值
name选项的类名
<input type="radio" name="" value="" id=""/>
多选框
id用于关联<label>文本框中的for
checked默认选中
disabled不可选中的
value选项的值
name选项的类名
<input type="checkbox" name="" value="" id=""/>
下拉框
<select></select>
下拉框内容
selected默认选中
value选项的值
<option></option>
文本域 多行文本框 两个标签中的内容就是他的值
cols长
rows宽
<textarea></textarea>
按钮
提交按钮
<button type="submit"></button>
<input type="submit" value="提交按钮Input">
普通按钮
<button type="button"></button>
<input type="button" value="普通按钮Input">
重置按钮
<button type="reset"></button>
<input type="reset" value="重置按钮Input">
简单CSS样式
内联样式
内部样式
选择器
1.ID选择器
2.标签选择器 元素选择器
3.类选择器
总体展示