java医疗管理系统技术描述,Java基础26~反射

  • Method类 类的方法

  • Field类 类的属性

  • Constructor类 类的构造方法

反射

================================================================

使用反射的过程

  1. 获得Class对象

  2. 通过Class对象获得类的方法和属性

  3. 通过反射机制创建对象

  4. 通过对象调用方法和属性

获得Class的几种方式


  1. 类名.class 通过类获得

  2. 对象.getClass() 通过对象获得

  3. Class.forName(“包名+类名”) 动态加载类到内存中

运行时获得类的属性和方法信息


Class类的方法:

  • Method[] getDeclaredMethods() 获得所有已声明的方法

  • Field[] getDeclaredFields() 获得所有已声明的属性

Method的方法:

  • String getName() 获得方法名

  • Class getReturnType() 获得返回值类型

  • int getModifiers() 获得访问修饰符

  • Class[] getParameterTypes() 获得所有参数类型

Field的方法:

  • String getName() 获得方法名

  • Class getType() 获得类型

  • int getModifiers() 获得访问修饰符

创建对象,调用方法和属性


Class类的方法:

  • Object newInstance() 创建对象,必须提供无参的构造方法

  • Method getMethod(String name,Class… paramType) 获得特定方法

name是方法名, paramType是参数的类型

Method类的方法:

  • Object invoke(Object obj,Object… params) 调用方法

obj是调用方法的对象,params是参数的值

调用指定构造方法


Class类的方法:

  • Constructor getContructor(Class… paramType) 获得构造方法

paramType是构造方法的参数类型

Constructor的方法:

  • Object newInstance(Object… params) 创建对象

params是参数的值

反射案例


案例:运行时获得类的属性和方法信息

class Person{

private String name;

private Integer age;

public Person(){

}

public Person(String name,Integer age){

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public void sayHi(){

System.out.println(“Hi:”+name+“,”+age);

}

}

public class ReflectTest {

public static void main(String[] args){

try {

//获得类型

Class clazz = Person.class;

//获得所有的属性

Field[] fields = clazz.getDeclaredFields();

for(Field f : fields){

//属性名称

String name = f.getName();

//属性类型

Class c = f.getType();

System.out.println(name+" - "+c);

}

//获得所有的方法

Method[] methods = clazz.getDeclaredMethods();

for(Method m : methods){

//方法名

String name = m.getName();

//返回值类型

Class returnType = m.getReturnType();

System.out.print(returnType + " " + name + “(”);

//参数

Class[] params = m.getParameterTypes();

for(Class c : params){

System.out.print(" " + c.getName());

}

System.out.println(“)”);

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

}

案例:创建对象,调用方法

try {

//获得类型

Class clazz = Person.class;

//获得类的对象,调用默认的构造方法

Object obj = clazz.newInstance();

//获得对象的方法

Method m1 = clazz.getMethod(“setName”, String.class);

Method m2 = clazz.getMethod(“setAge”, Integer.class);

Method m3 = clazz.getMethod(“sayHi”);

//调用方法

m1.invoke(obj, “micheal”);

m2.invoke(obj, 20);

m3.invoke(obj);

} catch (Exception e) {

e.printStackTrace();

}

案例:调用指定构造方法

try {

//运行时将Person类加载到内存中

Class clazz = Person.class;

//获得指定的构造方法

Constructor con = clazz.getConstructor(String.class,Integer.class);

//调用构造方法

Object obj = con.newInstance(“Jim”,30);

//调用方法

Method m = clazz.getMethod(“sayHi”);

m.invoke(obj);

} catch (Exception e) {

e.printStackTrace();

}

案例:使用反射完成JSON解析

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

image

image

其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

[外链图片转存中…(img-cfnQCNNq-1713291351455)]

[外链图片转存中…(img-i0xdQ1vL-1713291351455)]

其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

 《Java web医院分诊挂号管理系统》该项目采用技术jsp、SpringMVC、spring,hibernate,tomcat服务器、mysql数据库 开发工具eclipse,项目含有源码、论文、配套开发软件、软件安装教程、项目发布教程分诊管理主要实现患者信息录入,分诊,排队等功能。    具体实现以下功能:   1 患者查询功能:为了方便医生查找患者等信息,将所有患者信息按照需要进行分类。这样医生就能很方便的找到自己需要的信息。   2 添加功能:管理员可以通过填写表格的形式输入患者姓名,联系电话等相关信息。系统可以自动避免重复信息。   3 修改功能:管理员可以对数据库中的信息进行修改。系统能够通过管理员给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。   4 删除功能:管理员可以对数据进行删除操作。系统能够通过管理员给出的条件查找出要删除的信息,并提示是否确定删除,如果确定删除,则把相关信息从数据库中删除掉。   5 管理员查询功能:管理员可以通过条件选择查询所有信息,并进行排序。 课程目标:    1、学会各类开发软件安装、项目导入以及项目发布,含项目源码,需求文档,配套软件等    2、该项目主要功能完善,主要用于简历项目经验丰富,以及毕业设计或者二次开发    3、提供项目源码,设计文档、数据库sql文件以及所有配套软件,按照教程即可轻松实现项目安装部署  本课程为素材版,需要实战版代码讲解教程的同学可以点击如下链接:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572JavaWeb项目实战之宿舍管理系统https://edu.csdn.net/course/detail/26721JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610java项目实战之电子商城后台(java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值