java学习day11

反射

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.类选择器

总体展示

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值