当前位置: 首页 > wzjs >正文

网站规划的基本内容有哪些阳江网页设计

网站规划的基本内容有哪些,阳江网页设计,矿泉水瓶50种手工制作,找网站设计公司DAY11.1 Java核心基础 反射 重点和难点,应用面很广 大部分库和框架都需要用到反射机制,它是动态语言的关键,但是概念抽象不好理解 反射:通过实例化类映射到类,从而获取类的信息 概括说就是:常规情况是…

DAY11.1 Java核心基础

反射

重点和难点,应用面很广

大部分库和框架都需要用到反射机制,它是动态语言的关键,但是概念抽象不好理解

反射:通过实例化类映射到类,从而获取类的信息

概括说就是:常规情况是通过类来创建实例化对象,而反射就是将这个过程反转,通过实例化对象获取类的信息

Class类(反射 API 的入口)

Class类是反射的基础

Class类:是专门用来描述其它类的类

对每一种对象,JVM 都会实例化一个 java.lang.Class 的实例,java.lang.Class 为我们提供了在运行时访问对象的属性和类型信息的能力。

Class 还提供了创建新的类和对象的能力。最重要的是,Class 是调用其他反射 API 的入口,我们必须先获得一个 Class 实例才可以进行接下来的操作。

创建Class对象的三种方式

  • forName():Class的静态方法forName()方法

  • .class:通过实体类的.class直接取得

  • getClass():通过创建实体类的getClass()方法获取

public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {File file1 = new File("H:\\Java代码库\\DeepSeek_Tesat\\src\\main\\java\\com\\deepSeek\\shuwu\\Day10\\test3.txt");Class class1 = Class.forName("com.deepSeek.shuwu.Day10.User");Class<User> class2 = User.class;User user = new User("deepSeek", 18);Class<? extends User> class3 = user.getClass();System.out.println(class1);System.out.println(class2);System.out.println(class3);
}

那么这三个class对象是否为同一个呢?

我们来验证一下

System.out.println(class1 == class2);
System.out.println(class3 == class2);
System.out.println(class2 == class3);

image-20250312222217020

可以看见这个为ture,哈哈,原来这个是一样的对象

为什么呢?

这时候就要提到大名鼎鼎的JVM

JVM的类加载机制:程序中使用到某个类的时候,需要通过类加载器加载静态文件到JVM中,从而创建对象

每个类只加载一次,JVM每个类只有一个

所以用来描述它的class必然只有一个,所以无论通过那种方式获取class对象,都是同一个对象

Class是整个反射机制的源头

跟反射相关的操作大部分都是基于对象的操作,获取目标类的信息都是通过调用class的相关方法来完成的

类的信息:成员变量、成员方法、构造函数、继承的父类、实现的接口等…

Class的常用方法

方法描述
public native boolean isInterface()判断该类是否为接口
public native boolean isArray()判断该类是否为数组
public boolean isAnnotation()判断该类是否为注解
public String getName()获取该类的全类名
public ClassLoader getClassLoader()获取类加载器
public native Class getSuperclass()获取该类的直接父类
public Package getPackage()获取该类所在的包
public String getPackageName()获取该类所在包的名称
public Class[] getInterfaces()获取该类的全部接口
public native int getModifiers()获取该类的访问权限修饰符
public Field[] getFields()获取该类的全部公有成员变量,包括继承自父类的和自定义的
public Field[] getDeclaredFields()获取该类的自定义成员变量
public Field getField(String name)通过名称获取该类的公有成员变量,包括继承自父类的和自定义的
public Field getDeclaredField(String name)通过名称获取该类的自定义成员变量
public Method[] getMethods()获取该类的全部公有方法,包括继承自父类的和自定义的
public Method[] getDeclaredMethods()获取该类的自定义方法
public Method getMethod(String name,Class… parameterTypes)通过名称和参数信息获取该类的公有方法,包括继承自父类的和自定义的
pyblic Method getDeclaredMethod(String name,Class… parameterTypes)通过名称和参数信息获取该类的自定义方法
public Constructor[] getConstructors()获取该类的公有构造函数
public Constructor[] getDeclaredConstructors()获取该类的全部构造函数
public Constructor getConstructor(Class… parameterTypes)通过参数信息获取该类的公有构造函数
public Consrructor getDeclaredConstructor(Class… parameterTypes)通过参数信息获取该类的构造函数

java中数据类型分为两种:基本类型和引用类型

引用类型一定是对象,而对象一定有Class类

获取类的接口 getInterfaces()

测试User类:

public class User implements Serializable{public String name;private int age;public User(String name, int age) {this.name = name;this.age = age;}public String test(String name){return name;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}

main:

public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException {Class class1 = Class.forName("com.deepSeek.shuwu.Day10.User");System.out.println(class1.isInterface());Class[] interfaces = class1.getInterfaces();for (Class anInterface : interfaces) {System.out.println(anInterface);}}

输出:
image-20250312230354079

因为获取类可以实现多个接口,所以用数组返回

获取父类 getSuperclass()
public class User extends List {}
Class class1 = Class.forName("com.deepSeek.shuwu.Day10.User");
System.out.println(class1.getSuperclass());

image-20250312231350982

获取构造方法

Class 提供了 4 个方法获取构造函数

public Constructor[] getConstructors() :获取所有公有(public)的构造器

public Constructor[] getDeclaredConstructors() :获取所有构造器

public Constructor getConstructor(Class… parameterTypes) :获取单个公有(public)的构造器

public Consrructor getDeclaredConstructor(Class… parameterTypes) :获取单个构造器

反射机制专门提供的一个类 Constructor,专门用来描述类的构造器

Class 专门用来描述类的信息,Constructor 专门用来描述类的构造器

public class User {private String name;private int age;public User(String name, int age) {this.name = name;this.age = age;}public User() {}private User(String name){this.name = name;}protected User(int age){this.age = age;}
}
public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException {Class class1 = Class.forName("com.deepSeek.shuwu.Day10.User");Constructor[] constructors = class1.getConstructors();for (Constructor constructor : constructors) {System.out.println(constructor);}    public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException {Class class1 = Class.forName("com.deepSeek.shuwu.Day10.User");System.out.println("获取所有公有的构造器");Constructor[] constructors = class1.getConstructors();for (Constructor constructor : constructors) {System.out.println(constructor);}System.out.println("根据参数类型获取单个公有构造器");System.out.println(class1.getConstructor(String.class, int.class));System.out.println("获取所有构造器");for (Constructor constructor : class1.getDeclaredConstructors()) {System.out.println(constructor);}System.out.println("根据参数类型获取单个构造器");System.out.println(class1.getDeclaredConstructor(String.class, int.class));}
}

image-20250312232403026

可以看见公有的有两个,所有的有四个,有Declared则就是所有的


文章转载自:

http://fBCclEzb.yqgny.cn
http://budw4aOt.yqgny.cn
http://8fArvWGE.yqgny.cn
http://tMpRrDBF.yqgny.cn
http://y9loiIIE.yqgny.cn
http://xK48aqZ5.yqgny.cn
http://AheVxa4k.yqgny.cn
http://4g5PQSXI.yqgny.cn
http://uZnhaC7W.yqgny.cn
http://4EhibYTs.yqgny.cn
http://mWhnuca2.yqgny.cn
http://xEtIIazW.yqgny.cn
http://7fMqkOWb.yqgny.cn
http://RSULhOQM.yqgny.cn
http://c992VY2i.yqgny.cn
http://kvw8f5ct.yqgny.cn
http://DPaZXbQ3.yqgny.cn
http://MyOUjnPg.yqgny.cn
http://6MZLgiVJ.yqgny.cn
http://NjN3SBsZ.yqgny.cn
http://4SSgXkDn.yqgny.cn
http://QLIoP825.yqgny.cn
http://OlzJ5dEn.yqgny.cn
http://zk0luAr6.yqgny.cn
http://sNbdq4Xx.yqgny.cn
http://orxEXu0N.yqgny.cn
http://lLg8l0y4.yqgny.cn
http://oltrn307.yqgny.cn
http://QCEVHuzy.yqgny.cn
http://f63z5hbr.yqgny.cn
http://www.dtcms.com/wzjs/718859.html

相关文章:

  • 官方网站建设公司排名郑州电力高等专科学校就业去向
  • 网站用户细分html制作百度登录页面
  • 中国工程建设信息网站网站权重收录
  • 主要搜索引擎网站搜索结果比较红孩子母婴网站开发背景
  • 工信部网站首页pc做网站服务器吗
  • 网站的经典推广方法衡水建设企业网站
  • 网站seo快速排名云南省建设工程造价信息网官网
  • 网站做导航的地图导航发布信息的软件
  • 平面设计师素材网站响应式网站制作价格
  • 怎么找做网站的公司医疗网站建设效果
  • 网站 开发流程收录网
  • 哈尔滨网站建设招聘软件盒子wordpress
  • 做导购类网站制作一个网站的费用是多少
  • 成都建立网站的公司网站网站开发工具的功能
  • 做企业平台的网站有哪些烟台专业的网站建站公司
  • 专业企业建站价格jsp做的网站可以用的
  • 清新大气企业公司网站源码新乡seo公司
  • 网站价格表wordpress 主题和搭建
  • 服饰怎么做网站推广网页设计基础实训目的
  • 黄冈手机网站建设百度指数第一
  • .湖南省建设厅规范网站个人全屏网站模板
  • 福州小学网站建设数字化营销方案
  • 社区微网站建设方案广东建设协会网站首页
  • 什么网站做的最好虚拟货币网站建设
  • 镇江有哪些网站加盟网站开发费用
  • 盘锦做网站多少钱网上买保险有哪些平台
  • 医院网站建设的好处百度下载免费官方安装
  • 手表 网站策划哪个网站可以找人做橱柜
  • 网站建设与维护是什么意思做棋牌开发的网站
  • 私人做网站的流程php网站模板免费下载