Java遗忘笔记(1)
来源:互联网 发布:cdd 什么意思网络用语 编辑:程序博客网 时间:2024/05/18 03:46
1. 静态代码块
class Parent{ static String name = "hello"; { System.out.println("parent block"); } static { System.out.println("parent static block"); } public Parent(){ System.out.println("parent constructor"); } } class Child extends Parent{ static String childName = "hello"; { System.out.println("child block"); } static { System.out.println("child static block"); } public Child(){ System.out.println("child constructor"); } } public class StaticIniBlockOrderTest { public static void main(String[] args) { new Child();//语句(*) } }
output:
parent static blockchild static blockparent blockparent constructorchild blockchild constructor
注意,就算是子类中的构造方法写的是super(),也要先执行super(),在执行子类的{},之后子类的构造方法。
Java 内省
内省IntroSpector
JavaBean主要用于传递数据信息,其方法用于访问私有变量,且方法名符合某种规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较少。这些信息储存在类的私有变量中,通过set()、get()获得。内省主要是对JavaBean进行操作。JavaBean内部的方法要按照某种规则命名,例如void setAge(int age)、int getAge()。JavaBean可以作为普通类进行操作;普通类如果内部有set()、get()方法,也可以当做JavaBean使用。
JavaBean的属性是通过get()和set()方法推断出来的,即去掉get、set后的字母,例如,属性为age,而不是成员变量,因为成员变量看不见。获得属性名的规则:如果属性名的第二个字母是小写,则把第一个字母小写。例如,gettime—>time,setTime—>time,getCPU—>CPU。
JavaBean处理的好处:
1、JavaEE中许多地方需要使用JavaBean。
2、JDK给JavaBean提供的API称为内省。
PropertyDescriptor类
PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
1、getPropertyType(),获得属性的Class对象。
2、getReadMethod(),获得用于读取属性值的方法;getWriteMethod(),获得用于写入属性值的方法。
3、hashCode(),获取对象的哈希值。
4、setReadMethod(Method readMethod),设置用于读取属性值的方法;setWriteMethod(MethodwriteMethod),设置用于写入属性值的方法;
通过属性名获取对应的值,利用反射方法,如下:
ReflectPoint pt1 = new ReflectPoint(7,9);String propertyName = "x";//给一个属性,获取值PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());Method methodGetX = pd.getReadMethod();//Read对应get()方法Object reValue = methodGetX.invoke(pt1);
给某个属性设置值,如下:
String propertyName2 = "y";//给一个属性,设置值PropertyDescriptor pd2 = new PropertyDescriptor(propertyName2,pt1.getClass());Method methodSetY = pd2.getWriteMethod();//Write对应set()方法methodSetY.invoke(pt1,3);
- Java遗忘笔记(1)
- 遗忘笔记
- 被遗忘的java
- Java容易遗忘的知识点列表(持续更新)
- 防遗忘笔记:tizen下截屏
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- 遗忘
- java多线程实现方式(遗忘....)
- 3D数学--学习笔记(五):一些概念总结(避免遗忘!)
- Git使用详细教程
- Vim插件:NERDtree(在Windows下)
- UCOSIII软件定时器(待更)
- xml,jsp,java,数据库,加注释的方法
- 【Android动画九章】-帧动画
- Java遗忘笔记(1)
- Android 6.0动态申请权限实践及遇到的坑
- DAO 设计的实现:
- The summary of Java
- pktgen 基本使用
- activiti 设置变量(四)
- Please ensure that adb is correctly located at 最新详细方案
- 宏定义中的"#"、"##"、"..."、"__VA_AGRS__"
- NYOJ 991 Registration system